设计模式梳理总结(1)

1、简单工厂
Factory决定实例哪个对象,返回父类。具体逻辑在子类中完成。

定义一个用于创建对象的接口,让子类决定实例化哪一个类。
Operation:功能对象公共接口。
ConceretOperation:具体功能对象。
Factory:决定生成哪个ConceretOperation,返回Operation。

2、工厂方法模式
*实际上就是对简单工厂的进一步抽象,向上抽象出IFactory,不同的Factory类生成不同的对象。
每个Factory生成不同的ConceretOperation。
Client决定使用哪个Factory。

3、抽象工厂模式
*提供一个创建一系列相关或者相互依赖的对象的接口,而无需指定他们具体的类。

我的理解其实就是简单工厂+工厂方法的结合体。

 

4、装饰模式-Decorator Pattern
*装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。
Decorator:继承或包含(不能继承的情况)要装饰的类,对被装饰类进行扩展。

5、代理模式 proxy
*为其他对象提供代理,控制对这个对象的访问。
代理和真实对象实现共同的接口,代理包含对真实对象的引用。客户端通过访问代理来访问真实对象,真实对象对客户端是不可见的。
应用:WebService,浏览器

6、原型模式 protoType
用原型实例指定创建对象的种类,并通过clone这些原型创建新的对象。

 

7、模板方法模式 templateMethod
*定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
实际上就是抽象的思想,将子类中的相同步骤抽象出来到AbstractClass。

其实核心就是抽象。

8、外观模式 Facade
*为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
subSysClass1、subSysClass2...:子系统类,实现各自的功能。
facadeClass:客户端访问的统一接口,包含对子系统类的引用。对子系统类的功能进行加工、组合,对外提供新的方法。
Client: 调用facadeClass,无法访问到子系统类。

思想应用:三层架构、系统重构。

9、建造者模式 Biulder
*将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
Derictor:调用具体建造者。
Builder:建造者公共接口。
ConcreteBuilder:具体建造者,实现产品建造过程。
Product:建造者返回的产品。
Client:客户端声明具体建造者,调用derictoer建造。不需要知道建造的具体过程。

10、观察者模式 publish/Subscribe
*定义一种一对多的依赖关系,让多个观察者对象同时监听某一主体对象。这个主体对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。
Subject:被观察者,包含委托。
Oberserver:观察者,实现相同参数类型的方法(通常为eventArgs 事件参数,object 实体参数。)
Client:(1)观察者注册事件(2)被观察者调用事件                                       

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值