三、经典模式(1)介绍

每个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。----Christopher Alexander
良好的软件的基本特征是 高内聚、松耦合,使得它更易于维护、扩展和复用。
在20世纪90年代,Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides四人出了本名为《设计模式:可复用面向对象软件设计基础》经典著作,称“GoF四人组”,其描述23种经典模式被称为“GoF设计模式”。
设计模式就是解决某个特定的问题的特定方法。需要对面向对象设计中建立的类型进行更进一步的抽象。
好的程序员需要了解尽可能多的模式,不断学习新的模式,更重要的是识别反复出现的问题并通过模式来解决问题
还有模式的最高境界就是忘记模式。说到底,学习模式就是学一种理念、一种审美观、一种思考方式。
面向对象指使用离散的对象来构建软件系统,而设计模式利用了对象的继承、组合和委托,在比OOP更高层次考虑问题,尤其是使用委托来对任何不稳定或不确定的方法,如:状态、对象的创建、应用平台等,进行封装,从而保证了源代码的重用和设计的问题,因此设计模式可以理解为OOP中虚函数、多态函数概念的延伸:OOP中的虚函数和多态实现的是方法、对象行为上的多态,而设计模式则对创建、结构和高层次的行为进行了多态。
在哪里应用设计模式的一个重要指标就是:看哪里有变化点,设计模式是建立在对系统变化点的基础上进行的,哪里有变化点,哪里就应用设计模式。

模式类别模式名称模式说明
创建型模式(Creational Pattern)抽象工厂模式(Abstract Factory Pattern)提供一个创建一系列或相互依赖对象的接口,而无需指定它们具体的类
创建型模式(Creational Pattern)建造者模式(Builder Pattern)将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
创建型模式(Creational Pattern)工厂方法模式(Factory Method Pattern)定义一个用于创建对象的接口,但是让子类决定将哪一类实例化
创建型模式(Creational Pattern)原型模式(Prototype Pattern)使用原型实例指定待创建对象的类型,并且通过复制这个原型来创建新的对象
创建型模式(Creational Pattern)单例模式(Singleton Pattern)确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一实例
结构型模式(Creational Pattern)适配器模式(Adapter Pattern)将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作
结构型模式(Creational Pattern)桥接模式(Bridge Pattern)将抽象部分与它的实现部分解耦,使得两者都能够独立变化
结构型模式(Creational Pattern)组合模式(Composite Pattern)组合多个对象形成树形结构,以表示具有部分-整体关系的层次结构,组合模式让客户端可以统一对待单个对象和组合对象
结构型模式(Creational Pattern)装饰模式(Decoratot Pattern)动态地给一个对象增加一些额外的职责,就扩展功能而言,装饰模式提供一种比使用子类更灵活的替代方案
结构型模式(Creational Pattern)外观模式(Facade Pattern)为子系统中一组接口提供一个统一的入口。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用
结构型模式(Creational Pattern)代理模式(Proxy Pattern)给某一个对象提供一个代理或占位符,并由代理对象来控制对原对象
结构型模式(Creational Pattern)享元模式(Flyweight Pattern)运用共享技术有效地支持大量细粒度对象的复用

参考《C#设计模式》刘伟 胡志刚。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值