摘要:简化问题的模式 门面(Facade)模式把一组复杂的接口隐藏在一个简单且特定的接口后面。 中介者(Mediator)模式把对象之间的引用关系包装在一个特定的容器里面。 组合(Composite)模式描述了整体与部分的结构关系,并且允许用一致的方式处理这个结构。外观模式:中介者模式组合模式来自为知笔记(Wiz)
阅读全文
摘要:模板模式和策略模式的应用情景类似,但实现方式不同,前者使用继承,后者使用委托。 模板模式有可能是最“古老”的模式之一,在使用面向对象技术的早期,“继承”大行其道,很多设计人员可能不自觉地使用过模板模式。模板模式的缺点是把具体实现和通用算法紧密地耦合起来,使得具体实现只能被一个通用算法操纵。然而在继承关系中,父类的信息可以更多地暴露给子类,这种(违背面向对象设计原则的)微妙的沟通在一些特定应用中显得更加灵活和方便。 策略模式是委托的经典用法。策略模式消除了通用算法和具体实现的耦合,使得具体实现可以被多个通用算法操纵。策略模式也增加了类层次,比模板模式复杂。 模板模式和策略模式通常可以互相替...
阅读全文
摘要:继承具有如下优点:实现新的类非常容易,因为基类的大部分功能都可以通过继承关系自动赋予派生类;修改或者扩展继承来的实现非常容易;只要修改父类,派生的类的行为就同时被修改了。初学面向对象编程的人会认为继承真是一个好东西,是实现复用的最好手段。但是随着应用的深入就会发现继承有很多缺点:继承破坏封装性。基类的很多内部细节都是对派生类可见的,因此这种复用是“白箱复用”;如果基类的实现发生改变,那么派生类的实现也将随之改变。这样就导致了子类行为的不可预知性;从基类继承来的实现是无法在运行期动态改变的,因此降低了应用的灵活性。 继承关系有很多缺点,如果合理使用组合则可以有效的避免这些缺点,使用组合关系将系统
阅读全文