一、数据结构模式
常常有一些组件在内部具有特定的数据结构,如果让客户程序依赖这些特定的数据结构,将极大地破坏组件的复用,这个时候将组件封装在类的内部并对外提供统一的接口是一种行之有效的解决方案。
典型模式
- Composite
- Iterator
- Chain of Resposibility
Composite
组件模式采用树形结构来实现普遍存在的对象容器,从而将一度多的关系转化为一对一的关系。
Iterator
提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。
Chain of Resposibility
在软件开发中常常有一个请求会被多个对象中的一个(或多个)处理,但是每个请求在运行时只能有一个接收者,如果显示的执行将会使请求者和接受者产生紧耦合。为了避免产生紧耦合,将这些处理对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。
二、行为变化模式
Command
将一个行为封装为一个对象,从而使你可以对不同的行为进行参数化,对行为本身做一些操作如排队记录支持undo/redo。