随笔分类 -  设计模式

访问者模式-Visitor Pattern
摘要:1.主要优点 访问者模式的主要优点如下: (1) 增加新的访问操作很方便。使用访问者模式,增加新的访问操作就意味着增加一个新的具体访问者类,实现简单,无须修改源代码,符合“开闭原则”。 (2) 将有关元素对象的访问行为集中到一个访问者对象中,而不是分散在一个个的元素类中。类的职责更加清晰,有利于对象 阅读全文

posted @ 2018-12-10 18:18 Kooing 阅读(187) 评论(0) 推荐(0)

模板方法模式-Template Method Pattern
摘要:5.1 模式优点 模板方法模式的主要优点如下: (1) 在父类中形式化地定义一个算法,而由它的子类来实现细节的处理,在子类实现详细的处理算法时并不会改变算法中步骤的执行次序。 (2) 模板方法模式是一种代码复用技术,它在类库设计中尤为重要,它提取了类库中的公共行为,将公共行为放在父类中,而通过其子类 阅读全文

posted @ 2018-12-07 17:44 Kooing 阅读(178) 评论(0) 推荐(0)

策略模式-Strategy Pattern
摘要:1. 主要优点 策略模式的主要优点如下: (1) 策略模式提供了对“开闭原则”的完美支持,用户可以在不修改原有系统的基础上选择算法或行为,也可以灵活地增加新的算法或行为。 (2) 策略模式提供了管理相关的算法族的办法。策略类的等级结构定义了一个算法或行为族,恰当使用继承可以把公共的代码移到抽象策略类 阅读全文

posted @ 2018-12-07 16:36 Kooing 阅读(417) 评论(0) 推荐(0)

状态模式-State Pattern
摘要:1. 主要优点 状态模式的主要优点如下: (1) 封装了状态的转换规则,在状态模式中可以将状态的转换代码封装在环境类或者具体状态类中,可以对状态转换代码进行集中管理,而不是分散在一个个业务方法中。 (2) 将所有与某个状态有关的行为放到一个类中,只需要注入一个不同的状态对象即可使环境对象拥有不同的行 阅读全文

posted @ 2018-12-06 22:48 Kooing 阅读(231) 评论(0) 推荐(0)

观察者模式-Observer Pattern
摘要:1.主要优点 观察者模式的主要优点如下: (1) 观察者模式可以实现表示层和数据逻辑层的分离,定义了稳定的消息更新传递机制,并抽象了更新接口,使得可以有各种各样不同的表示层充当具体观察者角色。 (2) 观察者模式在观察目标和观察者之间建立一个抽象的耦合。观察目标只需要维持一个抽象观察者的集合,无须了 阅读全文

posted @ 2018-12-06 18:21 Kooing 阅读(179) 评论(0) 推荐(0)

备忘录模式-Memento Pattern
摘要:1.主要优点 备忘录模式的主要优点如下: (1)它提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤,当新的状态无效或者存在问题时,可以使用暂时存储起来的备忘录将状态复原。 (2)备忘录实现了对信息的封装,一个备忘录对象是一种原发器对象状态的表示,不会被其他代码所改动。备忘录保存 阅读全文

posted @ 2018-12-06 15:38 Kooing 阅读(189) 评论(0) 推荐(0)

中介模式——多个对象协调
摘要:1. 主要优点 中介者模式的主要优点如下: (1) 中介者模式简化了对象之间的交互,它用中介者和同事的一对多交互代替了原来同事之间的多对多交互,一对多关系更容易理解、维护和扩展,将原本难以理解的网状结构转换成相对简单的星型结构。 (2) 中介者模式可将各同事对象解耦。中介者有利于各同事之间的松耦合, 阅读全文

posted @ 2018-12-05 17:20 Kooing 阅读(184) 评论(0) 推荐(0)

迭代器模式
摘要:1. 主要优点 迭代器模式的主要优点如下: (1) 它支持以不同的方式遍历一个聚合对象,在同一个聚合对象上可以定义多种遍历方式。在迭代器模式中只需要用一个不同的迭代器来替换原有迭代器即可改变遍历算法,我们也可以自己定义迭代器的子类以支持新的遍历方式。 (2) 迭代器简化了聚合类。由于引入了迭代器,在 阅读全文

posted @ 2018-12-05 14:54 Kooing 阅读(165) 评论(0) 推荐(0)

解释器模式
摘要:1. 主要优点 解释器模式的主要优点如下: (1) 易于改变和扩展文法。由于在解释器模式中使用类来表示语言的文法规则,因此可以通过继承等机制来改变或扩展文法。 (2) 每一条文法规则都可以表示为一个类,因此可以方便地实现一个简单的语言。 (4) 增加新的解释表达式较为方便。如果用户需要增加新的解释表 阅读全文

posted @ 2018-12-04 17:11 Kooing 阅读(221) 评论(0) 推荐(0)

命令模式
摘要:1. 主要优点 命令模式的主要优点如下: (1) 降低系统的耦合度。由于请求者与接收者之间不存在直接引用,因此请求者与接收者之间实现完全解耦,相同的请求者可以对应不同的接收者,同样,相同的接收者也可以供不同的请求者使用,两者之间具有良好的独立性。 (2) 新的命令可以很容易地加入到系统中。由于增加新 阅读全文

posted @ 2018-12-04 01:17 Kooing 阅读(254) 评论(0) 推荐(0)

责任链模式
摘要:1.主要优点 职责链模式的主要优点如下: (1) 职责链模式使得一个对象无须知道是其他哪一个对象处理其请求,对象仅需知道该请求会被处理即可,接收者和发送者都没有对方的明确信息,且链中的对象不需要知道链的结构,由客户端负责链的创建,降低了系统的耦合度。 (2) 请求处理对象仅需维持一个指向其后继者的引 阅读全文

posted @ 2018-12-03 20:06 Kooing 阅读(224) 评论(0) 推荐(0)

代理模式proxy
摘要:代理模式的共同优点如下: (1) 能够协调调用者和被调用者,在一定程度上降低了系统的耦合度。 (2) 客户端可以针对抽象主题角色进行编程,增加和更换代理类无须修改源代码,符合开闭原则,系统具有较好的灵活性和可扩展性。 此外,不同类型的代理模式也具有独特的优点,例如: (1) 远程代理为位于两个不同地 阅读全文

posted @ 2018-12-03 16:20 Kooing 阅读(185) 评论(0) 推荐(0)

享元模式
摘要:1.主要优点 享元模式的主要优点如下: (1) 可以极大减少内存中对象的数量,使得相同或相似对象在内存中只保存一份,从而可以节约系统资源,提高系统性能。 (2) 享元模式的外部状态相对独立,而且不会影响其内部状态,从而使得享元对象可以在不同的环境中被共享。 2.主要缺点 享元模式的主要缺点如下: ( 阅读全文

posted @ 2018-12-03 15:51 Kooing 阅读(189) 评论(0) 推荐(0)

外观模式face
摘要:5.1 模式优点 外观模式的主要优点如下: (1) 它对客户端屏蔽了子系统组件,减少了客户端所需处理的对象数目,并使得子系统使用起来更加容易。通过引入外观模式,客户端代码将变得很简单,与之关联的对象也很少。 (2) 它实现了子系统与客户端之间的松耦合关系,这使得子系统的变化不会影响到调用它的客户端, 阅读全文

posted @ 2018-11-30 15:23 Kooing 阅读(174) 评论(0) 推荐(0)

装饰模式Decorator Pattern
摘要:1.主要优点 装饰模式的主要优点如下: (1) 对于扩展一个对象的功能,装饰模式比继承更加灵活性,不会导致类的个数急剧增加。 (3) 可以对一个对象进行多次装饰,通过使用不同的具体装饰类以及这些装饰类的排列组合,可以创造出很多不同行为的组合,得到功能更为强大的对象。 (4) 具体构件类与具体装饰类可 阅读全文

posted @ 2018-11-29 18:30 Kooing 阅读(188) 评论(0) 推荐(0)

组合模式,树形结构处理
摘要:1. 主要优点 组合模式的主要优点如下: (1) 组合模式可以清楚地定义分层次的复杂对象,表示对象的全部或部分层次,它让客户端忽略了层次的差异,方便对整个层次结构进行控制。 (2) 客户端可以一致地使用一个组合结构或其中单个对象,不必关心处理的是单个对象还是整个组合结构,简化了客户端代码。 (3) 阅读全文

posted @ 2018-11-29 14:52 Kooing 阅读(341) 评论(0) 推荐(0)

桥接模式
摘要:1.主要优点 桥接模式的主要优点如下: (1)分离抽象接口及其实现部分。桥接模式使用“对象间的关联关系”解耦了抽象和实现之间固有的绑定关系,使得抽象和实现可以沿着各自的维度来变化。所谓抽象和实现沿着各自维度的变化,也就是说抽象和实现不再在同一个继承层次结构中,而是“子类化”它们,使它们各自都具有自己 阅读全文

posted @ 2018-11-28 15:43 Kooing 阅读(304) 评论(0) 推荐(0)

适配器模式adepter
摘要:1. 主要优点 无论是对象适配器模式还是类适配器模式都具有如下优点: (1) 将目标类和适配者类解耦,通过引入一个适配器类来重用现有的适配者类,无须修改原有结构。(适配者得结构 (2) 增加了类的透明性和复用性,将具体的业务实现过程封装在适配者类中,对于客户端类而言是透明的,而且提高了适配者的复用性 阅读全文

posted @ 2018-11-27 21:51 Kooing 阅读(162) 评论(0) 推荐(0)

建造者模式
摘要:1.主要优点 建造者模式的主要优点如下: (1) 在建造者模式中,客户端不必知道产品内部组成的细节,将产品本身与产品的创建过程解耦,使得相同的创建过程可以创建不同的产品对象。 (2)添加新产品不用修改旧产品,系统扩展方便,符合“开闭原则” (3) 可以更加精细地控制产品的创建过程。适当的顺序流,也更 阅读全文

posted @ 2018-11-27 20:02 Kooing 阅读(304) 评论(0) 推荐(0)

克隆模式
摘要:1.主要优点 原型模式的主要优点如下: (1) 当创建新的对象实例较为复杂时,使用原型模式可以简化对象的创建过程,通过复制一个已有实例可以提高新实例的创建效率。 (4) 可以使用深克隆的方式保存对象的状态,使用原型模式将对象复制一份并将其状态保存起来,以便在需要的时候使用(如恢复到某一历史状态),可 阅读全文

posted @ 2018-11-27 03:24 Kooing 阅读(768) 评论(0) 推荐(0)

导航