![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
❤️大米花❤️
这个作者很懒,什么都没留下…
展开
-
中介者模式
概念定义: 用一个中介对象封装一系列的对象交互,使各个对象不需要显示的相互作用,从而使其耦合松散,而且可以独立的改变它们之间的交互优点: 减少类之间的以来,降低了类之间的耦合缺点:同事类越多,中介者的逻辑越复杂,中介者会膨胀的很大使用场景:中介者模式适用于多个对象之间紧密耦合的情况,紧密耦合的标准是:在类图中出现了蜘蛛网状结构,中介者模式有利于将蜘蛛网状结构转化为星型结构,使原本复杂魂落...原创 2020-01-20 10:15:18 · 153 阅读 · 0 评论 -
责任链模式
概念定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止优点:将请求和处理分开:请求者可以不用知道是谁处理的,处理者可以不用知道请求的全貌缺点:性能问题:每个请求都是从链头遍历到链尾,如果责任链较长,性能是一个非常大的问题调试不方便:链条较长的情况下,调试比较复杂注意事项:链中节点过多的...原创 2020-01-19 11:27:23 · 109 阅读 · 0 评论 -
原型模式
概念定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象优缺点:性能优良:原型模式是在内存二进制流的拷贝,比直接new一个对象性能要好很多逃避构造函数的约束(既是优点也是缺点)适用场景:资源优化场景:类的初始化需要耗费非常多的资源的情况性能和安全要求的场景:new一个对象需要繁琐的数据准备或者访问权限的情况一个对象多个修改者的场景:一个对象需要提供给其他对象访问,...原创 2020-01-19 09:39:52 · 128 阅读 · 0 评论 -
模版方法模式
概念定义:定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些步骤优点:封装不变部分,扩展可变部分提取公共代码,便于维护行为由父类控制,子类实现缺点:增加代码阅读难度适用场景:多个子类有公有的方法,且逻辑基本相同重要、复杂的算法,可以把核心算法设计为模板方法,周边的相关细节功能由各个子类实现重构时,把相同的代码抽取到父...原创 2020-01-09 15:32:33 · 81 阅读 · 0 评论 -
迭代器模式
概念定义:迭代器模式提供一种方法访问一种容器对象中的各个元素,而又不需要暴露该对象内部的细节代码实现public interface Iterator<E> { E next(); boolean remove(); Boolean hasNext();}public class List2Iterator<E> implements Ite...原创 2020-01-08 16:13:18 · 65 阅读 · 0 评论 -
装饰者模式
概念定义:在不改变原有对象的基础上,动态的给一个动向添加一些额外的职责优点:(1)装饰类和被装饰类可以独立发展,不相互耦合(2)装饰模式是继承关系的一个替代方案(3)装饰模式可以动态的扩展一个实现类的功能缺点(1)多层装饰比较复杂(2)出现了更多的类,增加了代码的复杂性使用场景(1)需要动态的扩展一个类的功能,或给一个类增加附加功能(2)需要动态的给一个对象增加功能,这些功...原创 2020-01-07 11:00:41 · 94 阅读 · 0 评论 -
观察者模式
概念定义:观察者模式也叫做发布订阅模式。定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖他的对象都会得到通知并自动更新优点:观察者和被观察者之间是抽象耦合建立一套触发机制缺点:观察者较多的时候通知的效率问题Java中消息的通知默认是顺序执行,一个观察者卡壳,会影响整体的执行效率(考虑使用异步处理)实现代码1public class Obser...原创 2020-01-06 15:35:47 · 103 阅读 · 0 评论