`

常用设计模式----复合模式

 
阅读更多
package org.design.patterns;

/**
 * 复合模式:
 * 结合两个或以上的模式,组成一个解决方案,解决一再发生的一般性问题。
 * 
 * 
 * MVC复合模式:
 * --控制器的策略模式
 * 视图和控制器实现了经典的策略模式:视图是一个对象,可以被调整使用不同的策略,
 * 而控制器提供了策略。视图只关心系统中可视的部分,对于任何界面行为,都委托给
 * 控制器处理。使用策略模式也可以使视图和模型之间的关系解耦,因为控制器负责和模型
 * 交互来传递用户的请求。对于工作是怎么完成的,视图毫不知情。
 * 
 * --视图的组合模式
 * 视图显示包括窗口、面板、按钮、文本标签等。每个显示组件如果不是组合节点(如窗口),
 * 就是 叶子节点(如按钮)。当控制器告诉视图更新时,只需告诉视图最顶层的组件即可,
 * 组合会处理其余的事。
 * 
 * --模型的观察者模式
 * 模型实现了观察者模式,当状态变化时,相关对象将继续更新。使用观察者模式,可以让
 * 模型完全独立于视图和控制器。同一个模型可以使用不同的视图,甚至可以同时使用多个
 * 视图。
 *
 */

public class MVC {
}


 

 /**
 * 模式:
 * 是在某情境(context)下,针对某问题的某种解决方案。
 */
public class 设计模式总结 {
}
/*
 * 模式比较:
 * 
 * 装饰者:        包装一个对象,以提供新的行为。
 * 状态:             封装了基于状态的行为,并使用委托在行为间切换。
 * 迭代器:        在对象的集合之中遍历,而不暴露集合的实现。
 * 外观:             简化一群类的接口。
 * 策略:             封装了可互换的行为,并使用委托来决定使用哪一个。
 * 代理:             包装对象,以控制对此对象的访问。
 * 工厂方法:   由子类决定要创建的具体类是哪一个。
 * 适配器:        封装对象,提供不同的接口。
 * 观察者:        让对象能够在状态改变时被通知。
 * 模板方法:   由子类决定如何实现一个算法中的步骤。
 * 组合:             客户用一致的方式处理对象集合和单个对象。
 * 单件:             确保有且只有一个对象被创建。
 * 抽象工厂:   允许客户创建对象的家族,而无需指定他们的具体类。
 * 命令:             把请求封装成对象。
 * 
 */
/* 模式分类:
 * --创建型:涉及到对象的实例化,将客户端从需要实例化的对象中解耦
 * Factory Method, 
 * Abstract Factory, 
 * Singleton,
 * Builder,
 * Prototype.
 * 
 * --行为型:涉及到类和对象如何交互及分配职责
 * Template Method,
 * Iterator,
 * Command,
 * Observer,
 * State,
 * Strategy,
 * Visitor,
 * Mediator,
 * Memento,
 * Interpreter,
 * Chain of Responsibility.
 * 
 * --结构型:可以把类或对象组合到更大的结构中
 * Decorator,
 * Proxy,
 * Facade,
 * Composite,
 * Adapter,
 * Bridge,
 * Flyweight.
 * 
 * ====================================================
 * 另一种分类方式:2种
 * 1.类模式: 描述类之间的关系如何通过继承定义。类模式的关系是在编译时建立的。
 * Template Method,
 * Factory Method,
 * Adapter,
 * Interpreter.
 * 
 * 2.对象模式: 描述对象之间的关系,而且主要通过组合来定义。对象模式的关系是在
 *             运行时建立,而且更加动态、更有弹性。
 * ...
 */
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics