软件工程之设计模式
- 单例模式:一个类只产生唯一的一个实例
- 桥接模式:将抽象部分与实现部分相分离
- 适配器模式:将类的接口转换成客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
- 命令模式:将请求封装在对象中,这样它就可以作为参数来传递,也可以被存储在历史列表里,或者以其他方式使用。
- 策略模式:定义一系列的算法,把它们一个个封装起来,并使它们可以相互替换,这一模式使得算法可以独立于使用它的客户而变化。
- 组合模式:描述了如何构造一个类层次式结构
- 装饰器模式:动态地给一个对象添加一些额外职责,而不使用其子类。
- 代理模式:为其他对象提供了一种代理以控制这个对象的访问,使得只有在确实需要这个对象时才对其进行创建和初始化。
- 状态模式:使得一个对象在其内部状态改变时通过调用另一个类中的方法改变其行为,使这个对象看起来像修改了它的类。
- 观察者模式:当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
- 原型模式:用原型实例指定创建对象的种类,并通过拷贝这个原型来创建新的对象。
- 外观模式:为一个复杂系统提供一个简单接口。
- 抽象工厂:提供一个一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
####耦合####
耦合从低到高依次为:非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合和内容耦合
1. 公共耦合:指一组模块都访问同一公共数据环境。
2. 控制耦合:指一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一个模块的功能。
3. 标记耦合:一组模块通过参数表传递记录信息。
4. 数据耦合:指一个模块访问另一个模块时,彼此之间通过数据参数,来交换输入输出信息。
####内聚####
1. 巧合内聚:指一个模块内各处理元素之间没有任何联系。
2. 逻辑内聚:指模块内执行几个逻辑上相似的功能,并通过参数确定该模块完成哪一个功能。
3. 时间内聚:需要把同时执行的动作组合在一起形成的模块
4. 通信内聚:指模块内所处理元素都在同一个数据结构上操作,或者指各处理使用相同的输入数据或者产生相同的输出数据。
5. 顺序内聚:指一个模块中各处理元素都密切相关同一功能必须顺序执行,前一个功能元素的输出就是下一个功能元素的输入。
6. 功能内聚:是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。