设计模式 -java篇
Java设计模式 设计模式简介 Java中使用设计模式的重要性 java中使用设计模式的目的和优点 设计原则 单一职责原则 (SRP) 开放封闭原则 (OCP) 里氏替换原则 (LSP) 接口隔离原则 (ISP) 依赖倒置原则 (DIP) 迪米特法则 (LoD) 合成复用原则 (CRP) 设计模式类型 创建型模式 单例模式 工厂方法模式 抽象工厂模式 建造者模式 原型模式 结构型模式 适配器模式 桥接模式 组合模式 装饰器模式 外观模式 享元模式 代理模式 行为型模式 职责链模式 命令模式 解释器模式 迭代器模式 中介者模式 备忘录模式 观察者模式 状态模式 策略模式 模板方法模式 访问者模式 使用设计模式的最佳实践 相关推荐 设计模式简介设计模式是一种被广泛应用于软件开发中的解决特定问题的方案。它们是经验丰富的程序员和软件设计师发现和总结的一些最佳实践,可以帮助开发人员更有效地解决各种问题。使用设计模式,可以提高代码的可读性、可维护性和可扩展性,同时还可以降低代码的复杂度和错误率。 设计模式的目的是提高代码的质量和可重用性。通过使用...
java8 新特性
今天写一个有意思的东西,spring的特殊注入(List,Map) 之前在整理观察者模式和中介者模式的时候,都需要有一个集合容器来放入我们的被执行的对象(前文请参考:观察者,中介者)有时候不同逻辑需要的集合里面元素不一样,有时候会引出线程安全问题(可以用多例来保证线程安全)。看看今天需要学习的内容,首先定义一个接口和三个实现类: 需要把这几个实现类放入集合中,方便我们调用通常做法: 12345678910111213141516171819202122@Resource(name = "aDemoService")private DemoService aDemoService;@Resource(name = "bDemoService")private DemoService bDemoService;@Resource(name = "cDemoService")private DemoService cDemoService;@Testvoid test(){ List<DemoSer...
spring的特殊注入(List,Map)
今天写一个有意思的东西,spring的特殊注入(List,Map) 之前在整理观察者模式和中介者模式的时候,都需要有一个集合容器来放入我们的被执行的对象(前文请参考:观察者,中介者)有时候不同逻辑需要的集合里面元素不一样,有时候会引出线程安全问题(可以用多例来保证线程安全)。看看今天需要学习的内容,首先定义一个接口和三个实现类: 需要把这几个实现类放入集合中,方便我们调用通常做法: 12345678910111213141516171819202122@Resource(name = "aDemoService")private DemoService aDemoService;@Resource(name = "bDemoService")private DemoService bDemoService;@Resource(name = "cDemoService")private DemoService cDemoService;@Testvoid test(){ List<DemoSer...
布隆过滤器
布隆过滤器是名叫bloom的家伙在1970年发明的一个过滤器,核心思想是告诉你说不存在就一定不存在,说存在不一定存在,现在多用于把数据放入内存,减少网络和磁盘的io 底层是利用长度为n的为二进制位数组,上面有k个哈希算法,每次增加需要多个哈希算法判断多个数组位置,然后修改为1;查找也是一样,通过多个哈希算法查找数组位置是否为1.如果有一个为0,表示不存在 ==这里就涉及到一个问题,哈希算法必然存在哈希冲突。一个值的数组位置为0 ,但是被其他值的哈希算法标识为1 ,所以查找时候说存在就不一定存在。== 1换算一下存储100万个元素。就是100万/8/1024≈122千字节 ,还不到1Mb 添加数据通过多个布隆过滤器函数计算,找到相应的多个二进制数组位,修改为1 查找同添加一样, 通过多个布隆过滤器函数计算二进制位数组的位置是否为1,如果都是1,说明有可能存在如果都不为1,说明一定不存在 删除因为一个二进制位数据的元素位可能被很多元素共享,所以删除不能实现 12345678910111213141516171819202122...








