Command模式
Command模式的3种用法Active object模式
是对Command的应用是实现多线程的基础技术
Active Object 并发模式在 Java 中的应用
http://www.ibm.com/developerworks/cn/java/j-lo-activeobject/index.html
模板方法与策略模式
为什么说组合由于继承(或策略模式由于模板方法):策略模式比模板方法多了一个中间层,策略模式完全遵循DIP原则,允许每个具体策略实现供多个不同通用算法操纵,而模板实现依赖了高层模块,部分违反了DIP,使得一个具体的实现只能服务于一个通用算法。Singleton和monostate
singleton一个类只有一个实例
一个静态成员
一个私有默认构造函数
monostate
一个类有很多实例,但每个实例状态都一致
所有的成员都是静态的
NULL OBJECT
对有行为的对象适应,对纯POJO无意义Factory模式
创建具体的稳定类时不需使用该模式,比如String类在创建高度易变的类时,该模式非常有用
两种形式:
一个类一个make方法
使用参数,实现类根据参数创建对象,在参数错误时,抛出异常
Composite模式
在不改变现有客户类时,使其具有发送多个命令的功能使一对一的关系支持一对多的关系
Observer模式
两种模型推模型
拉模型
使用哪种模型取决于被观察对象的复杂性,如果对象比较复杂,使用推,否则使用拉
Abstract Server模式
在客户端和其依赖的对象之间引入接口,接口的名字是从客户的角度起的,接口属于他的客户。客户和接口之间的逻辑绑定关系要强于接口和他的派生类之间的逻辑绑定关系。
逻辑关系的强度和实体关系的强度是不一致的。
Adapter模式
在不改变客户代码,又需支持新的功能,且新功能不能直接实现客户提供的接口时,引入该模式Modem的例子
Bridge模式
Bridge模式的作用:分离抽象与实现,使抽象与实现可以独立发展,自由组合,并提高代码复用率,遏制类的爆炸式增长。见例子: Bridge模式实例——杯子工厂 http://blog.csdn.net/yhmhappy2006/article/details/7230003
Visitor模式
Visitor模式是对策略模式的扩展,允许对一个类继承体系中的多个类使用策略。一般来说,如果一个应用程序中存在有需要以多种不同方式进行解析/处理的数据结构,就可以使用Visitor模式。Acyclic Visitor模式
Visitor模式适合被访问者层次结构稳定的系统Visitor的一个变体,解除了新增被访问者对象时对visitor继承结构的影响
把visitor接口变成退化的,把visit方法都分解到各个被访问者特定的访问者接口中。
有限状态机的实现方式
嵌套switch/case语句迁移表
State模式
State模式
每个状态实现类表示相应的状态
状态类的方法表示事件
当事件被触发时,当前状态类修改主体的新状态,并触发主体的相应动作(因此状态类必须持有指向主体类的引用)
源代码即设计文档
设计:架构设计
模块设计
编码
构建/测试循环
软件设计过程:
架构设计->模块设计->详细设计(编码)->构建/测试循环->设计文档(最终代码)->辅助设计文档(人工根据最终代码总结而成)
见:http://blog.csdn.net/yhmhappy2006/article/details/7234270