24种设计模式的定义和使用场合

24种设计模式的定义和使用场合

ID:32627451

大小:63.04 KB

页数:6页

时间:2019-02-13

24种设计模式的定义和使用场合_第1页
24种设计模式的定义和使用场合_第2页
24种设计模式的定义和使用场合_第3页
24种设计模式的定义和使用场合_第4页
24种设计模式的定义和使用场合_第5页
资源描述:

《24种设计模式的定义和使用场合》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、一・创建型模式(Creational):简单工厂模式(simpleFactory)发音:[^impl]['fekt(o)ri]定义:提供一个创建对象实例的功能,而无须关心其具体实现•被创建实例的类型可以是接口,抽象类,也可以是具体的类.1•抽象工厂(AbstractFactory)发音:[^bstraekt]定义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类.使用场合:1.如果希望一个系统独立于它的产品的创建,组合和表示的吋候,换句话书,希望一个系统只是知道产品的接口,而不关心实现的时候.2.如果一个系统要由多个产

2、品系列中的一个来配置的时候.换句话说,就是可以,就是可以动态地切换产品簇的时候.3.如果强调一系列相关产品的接口,以便联合使用他们的时候2•建造者模式(Builder)发音:「bildo]定义:将复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.使用场合:1.如果创建对象的算法,应该独立于该对象的组成部分以及它们的装配方式吋2.如果同一个构建过程有着不同的表示时3•工厂方法模式(FactoryMethod)定义:为创建对象定义一个接口,让子类决定实例化哪个类•工厂方法让一个类的实例化延迟到了子类.使用场景:1.客户类不

3、关心使用哪个具体类,只关心该接口所提供的功能.2.创建过程比较复杂,例如需要初始化其他关联的资源类,读取配置文件等.3.接口有很多具体实现或者抽象类有很多具体子类吋,4.不希望给客户程序暴露过多的此类的内部结构,隐藏这些细节可以降低耦合度.5.优化性能,比如缓存大对象或者初始化比较耗时的对象.4•原型模式(PrototypeMethod)发咅:[^roototaip]定义:使用原形实例指定将要创建的对•象类型,通过复制这个实例创建新的对象.应用场合:1.如果一个系统想要独立于它想要使用的对象时,可以使用原型模式,让系统只面向接口编程,在

4、系统需要新的对彖的时候,可以通过克隆原型来得到.2.如果需要实例化的类是在运行吋刻动态指定吋,可以使用原型模式,通过克隆原型来得到需要的实例.5.单例模式(Singleton)发音:[fsigg(9)lt(Q)n]定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点.使用场合:当需要控制一个类的实例只能有一个,而且客户只能从一个全局访问点访问它时,可以使用单例模式,这些功能恰好是单例模式要解决的问题.二•结构型模式(struct)发音:[strAkt]6•适配器模式(Adapter)发音:[$d&p⑸定义:将一个类的接口转换成客户

5、希望的另外一个接口•适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.使用场合;1•如果先要使用一个已经存在的类,但是它的接口不符合你的需求,这种情况可以使用适配器模式,来把已有的实现转换成你需要的接口.2.如果你想创建一个可以复用的类,这个类可能和一些不兼容的类一起工作,这中情况可以使用适配器模式,到时候需要什么就适配什么.3.如果你想使用一些己经窜在的子类,是不坑对每一个子类都进行适配,这中情况可以使用适配器模式,直接适配这些子类的父类就可以了.7•桥接模式(Bridge)发音:[brid3]定义:将抽象部分与它的

6、实现部分分离,使他们可以独立变化.使用场合:1.如果你不希望在抽彖部分和实现部分釆用固定的绑定关系,可以采用桥接模式.2.如果出现抽彖部分和实现部分都能够扩展的情况,可以采用桥接模式,让抽象部分和实现部分独立地变化.3.如果希望实现部分的修改不会对客户产生影响,可以采用桥接模式.4.如果采用继承的实现方案,会导致产生很多子类,对于这种情况,可以考虑采用桥接模式.8•组合模式(Composite)发音:[^nmpozit]定义:将对象组合成属性结构以表示”部分■整体“的层次结构,组合模式使用的用户对单个对象和组合对象的使用具有一致性.使用

7、场合:1.如果你想表示对象的部分■整体层次结构,可以使用..把整体和部分的操作统一起來,使得层次结构实现更简单,从外部來使用,这个层次结构也容易.2.如果希望同意地使用组合结构屮的所有对象,可以选用…,这正是组合模式提供的主要功能.9•装饰器模式(DecoratorMethod)发音:['dekoreito]定义:动态的给一个对象增加一些额外的职责,就增加功能来说,装饰模式生成子类更为灵活.使用场合:1•如果需要爱不影响其他对象的情况下,以动态,透明的方式给对象添加职责,可以使用装饰模式.2.如果不适合使用子类来进行扩展的时候,可以考虑

8、使用装饰模式.10•夕卜观模式(Facade)发音:[fo'sa:d]定义:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层的接口,这个接口使得这一子系统更加同容易使用.使用场景:1.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。