- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
.
.
一.创建型模式(Creational):
简单工厂模式(simpleFactory)发音:[simpl] [f?kt(?)r?]
定义:
提供一个创建对象实例的功能,而无须关心其具体实现.被创建实例的类型可以是接口,抽象类,也可以是具体的类.
1.抽象工厂(AbstractFactory)发音: [?bstr?kt]
定义:
提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类.
使用场合:
1.如果希望一个系统独立于它的产品的创建,组合和表示的时候,换句话书,希望一个系统只是知道产品的接口,而不关心实现的时候.
2.如果一个系统要由多个产品系列中的一个来配置的时候.换句话说,就是可以,就是可以动态地切换产品簇的时候.
3.如果强调一系列相关产品的接口,以便联合使用他们的时候
2.建造者模式(Builder)发音: [b?ld?]
定义:
将复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.
使用场合:
1.如果创建对象的算法,应该独立于该对象的组成部分以及它们的装配方式时
2.如果同一个构建过程有着不同的表示时
3.工厂方法模式(Factory Method)
定义:
为创建对象定义一个接口,让子类决定实例化哪个类.工厂方法让一个类的实例化延迟到了子类.
使用场景:
1.客户类不关心使用哪个具体类,只关心该接口所提供的功能.
2.创建过程比较复杂,例如需要初始化其他关联的资源类,读取配置文件等.
3.接口有很多具体实现或者抽象类有很多具体子类时,
4.不希望给客户程序暴露过多的此类的内部结构,隐藏这些细节可以降低耦合度.
5.优化性能,比如缓存大对象或者初始化比较耗时的对象.
4.原型模式(Prototype Method)发音: [pr??t?ta?p]
定义:
使用原形实例指定将要创建的对象类型,通过复制这个实例创建新的对象.
应用场合:
1.如果一个系统想要独立于它想要使用的对象时,可以使用原型模式,让系统只面向接口编程,在系统需要新的对象的时候,可以通过克隆原型来得到.
2.如果需要实例化的类是在运行时刻动态指定时,可以使用原型模式,通过克隆原型来得到需要的实例.
5.单例模式(Singleton) 发音: [s??g(?)lt(?)n]
定义:
保证一个类仅有一个实例,并提供一个访问它的全局访问点.
使用场合:
当需要控制一个类的实例只能有一个,而且客户只能从一个全局访问点访问它时,可以使用单例模式,这些功能恰好是单例模式要解决的问题.
二.结构型模式(struct)发音: [str?kt]
6.适配器模式(Adapter)发音: [?d?pt?]
定义:
将一个类的接口转换成客户希望的另外一个接口.适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.
使用场合;
1.如果先要使用一个已经存在的类,但是它的接口不符合你的需求,这种情况可以使用适配器模式,来把已有的实现转换成你需要的接口.
2.如果你想创建一个可以复用的类,这个类可能和一些不兼容的类一起工作,这中情况可以使用适配器模式,到时候需要什么就适配什么.
3.如果你想使用一些已经窜在的子类,是不坑对每一个子类都进行适配,这中情况可以使用适配器模式,直接适配这些子类的父类就可以了.
7.桥接模式(Bridge)发音: [br?d?]
定义:
将抽象部分与它的实现部分分离,使他们可以独立变化.
使用场合:
1.如果你不希望在抽象部分和实现部分采用固定的绑定关系,可以采用桥接模式.
2.如果出现抽象部分和实现部分都能够扩展的情况,可以采用桥接模式,让抽象部分和实现部分独立地变化.
3.如果希望实现部分的修改不会对客户产生影响,可以采用桥接模式.
4.如果采用继承的实现方案,会导致产生很多子类,对于这种情况,可以考虑采用桥接模式.
8.组合模式(Composite)发音: [k?mp?z?t]
定义:
将对象组合成属性结构以表示部分-整体的层次结构,组合模式使用的用户对单个对象和组合对象的使用具有一致性.
使用场合:
1.如果你想表示对象的部分-整体层次结构,可以使用..把整体和部分的操作统一起来,使得层次结构实现更简单,从外部来使用,这个层次结构也容易.
2.如果希望同意地使用组合结构中的所有对象,可以选用...,这正是组合模式提供的主要功能.
9.装饰器模式(Decorator Method)发音: [dek?re?t?]
定义:
动态的给一个对象增加一些额外的职责,就增加功能来说,装饰模式生成子类更为灵活.
使用场合:
1.如果需要爱不影响其他对象的情况下,以动态,透明的方式给对象添加职责,可
文档评论(0)