http://www-128.ibm.com/developerworks/cn/java/l-jdkdp/part4/index.html
Strategy Pattern:
1. 策略模式针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换
2. 建立一个算法解决类,用来提供客户端可以自由选择算法,该类中包含公共的接口的引用,并在初始化
Constructor中传入接口的类型,给该引用赋值
3. Client端调用算法解决类,传入参数(具体算法类名,通过upcasting来给算法解决类的公共接口的引用赋
值)
Strategy模式注重于算法的封装(Bridge模式注重于分离抽象和实现,为一个抽象体系提供不同的实现)
实际整个Strategy的核心部分就是抽象类的使用,使用Strategy模式可以在用户需要变化时,修改量很少,而且快速
可以参考JR的文章http://www.javaresearch.org/article/showarticle.jsp?column=31&thread=12453
Composite Pattern:
合成模式将对象组织到树结构中,可以用来描述整体与部分的关系
定义一个接口或抽象类,这是设计模式通用方式了,其他设计模式对接口内部定义限制不多,
Composite却有个规定,那就是要在接口内部定义一个用于访问和管理Composite组合体的对象们(或称部件
Component)
可以参考JR的文章http://www.javaresearch.org/article/showarticle.jsp?column=31&thread=12464