1 / 6
文档名称:

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

格式:doc   大小:26KB   页数:6页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

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

上传人:帅气的小哥哥 2024/5/14 文件大小:26 KB

下载得到文件列表

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

文档介绍

文档介绍:该【24种设计模式的定义和使用场合 】是由【帅气的小哥哥】上传分享,文档一共【6】页,该文档可以免费在线阅读,需要了解更多关于【24种设计模式的定义和使用场合 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。(Creational):简单工厂模式(simpleFactory)发音:['simpl]['f?kt(?)r?] 定义: 提供一个创立对象实例的功能,,抽象类,(AbstractFactory)发音:['?bstr?kt] 定义: 提供一个创立一系列相关或相互依赖对象的接口,而无需指定他们具体的类. 使用场合: ,组合和表示的时候,换句话书,希望一个系统只是知道产品的接口,而不关心实现的时候. ,就是可以,就是可以动态地切换产品簇的时候. ,(Builder)发音:['b?ld?] 定义: 将复杂对象的构建与它的表示别离,使得同样的构建过程可以创立不同的表示. 使用场合: ,应该独立于该对象的组成局部以及它们的装配方式时 (FactoryMethod) 定义: 为创立对象定义一个接口,. 使用场景: ,只关心该接口所提供的功能. ,例如需要初始化其他关联的资源类,读取配置文件等. , ,隐藏这些细节可以降低耦合度. ,比方缓存大对象或者初始化比较耗时的对象. (PrototypeMethod)发音:['pr??t?ta?p] 定义: 使用原形实例指定将要创立的对象类型,通过复制这个实例创立新的对象. 应用场合: ,可以使用原型模式,让系统只面向接口编程,在系统需要新的对象的时候,可以通过克隆原型来得到. ,可以使用原型模式,(Singleton)发音:['s??g(?)lt(?)n] 定义: 保证一个类仅有一个实例,并提供一个访问它的全局访问点. 使用场合: 当需要控制一个类的实例只能有一个,而且客户只能从一个全局访问点访问它时,可以使用单例模式,这些功能恰好是单例模式要解决的问题. (struct)发音:[str?kt](Adapter)发音:[?'d?pt?] 定义: . 使用场合; ,但是它的接口不符合你的需求,这种情况可以使用适配器模式,来把已有的实现转换成你需要的接口. ,这个类可能和一些不兼容的类一起工作,这中情况可以使用适配器模式,到时候需要什么就适配什么. ,是不坑对每一个子类都进行适配,这中情况可以使用适配器模式,(Bridge)发音:[br?d?] 定义: 将抽象局部与它的实现局部别离,使他们可以独立变化. 使用场合: ,可以采用桥接模式. ,可以采用桥接模式,让抽象局部和实现局部独立地变化. ,可以采用桥接模式. ,会导致产生很多子类,对于这种情况,)发音:['k?mp?z?t] 定义: 将对象组合成属性结构以表示"局部-整体"的层次结构,组合模式使用的用户对单个对象和组合对象的使用具有一致性. 使用场合: -整体层次结构,可以使用..把整体和局部的操作统一起来,使得层次结构实现更简单,从外部来使用,这个层次结构也容易. ,可以选用...,(DecoratorMethod)发音:['dek?re?t?] 定义: 动态的给一个对象增加一些额外的职责,就增加功能来说,装饰模式生成子类更为灵巧. 使用场合: ,以动态,透明的方式给对象添加职责,可以使用装饰模式. ,(Facade)发音:[f?'sɑ:d] 定义: 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层的接口,这个接口使得这一子系统更加同容易使用. 使用场景: ,,从而简化客户的使用. ,可以考虑使用外观模式,使用外观对象来将这个子系统与他的客户别离开来,从而提高子系统的独立性和可移植性. ,可以考虑使用外观模式使用外观模式对象作为每层的入口,这样可以简化层间调用,(Flyweight)发音:['fla?we?t] 定义: 运用共享技术有效地支持大量细粒度的对象. 使用场合: ,可以使用享元模式来减少对象的数量. ,造成很大的存储开销,可以使用享元模式来减少对象数量,并节约内存. ,比方通过计算得到,或者从外部传入等,可以使用享元模式来实现内部状态和外部状态的别离. ,可以用相对较少的共享对象取代很多组合对象,(Proxy)发音:['pr?ks?] 定义: 为其他对象提供一种代理以控制对这个对象的访问. 使用场合: ,可以使用远程代理. ,可以使用虚代理. ,可以使用保护代理. ,(behavioral)发音[bi'heivj?r?l](ChainOfResponsibility)发音:[t?e?n][r?,sp?ns?'b?l?t?] 定义: 使多个对象都有时机处理请求,,,并沿着这条链传递该请求,直到有一个对象处理它为止. 使用场合: ,但是具体由哪个对象来处理该请求,是运行时刻动态确定的. ,向多个对象中的其中一个提交请求的话,可以使用职责链模式. ,)发音:[k?'mɑ?nd] 定义: 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或者记录请求日志,(Interpreter)发音:[?n't??pr?t?] 定义: 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子. 使用场合: (Iterator) 定义:提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示. 使用场合: ,但是又不想暴露他的内部表示的时候,可以使用迭代器模式来提供迭代器接口,从而让客户端只是通过迭代器的接口来访问聚合对象,而无须关心聚合对象的内部实现. ,可以使用... ,可以使用....(Mediator)发音:['mi:dieit?] 定义: ,从而使其耦合松散,而且可以独立地改变他们之间的交互. 使用场合: ,导致相互依赖,结构混乱,可以采用中介模式,把这些对象相互的交互管理起来,各个对象都只需要和中介者交互,从而是的各个对象松散耦合,结构也更清晰易懂. ,并直接跟这些对象交互,导致难以复用该对象,可以采用中介者模式,把这个对象跟其他对象的交互封装到中介者对象里面,(Memento)发音:[m?'ment??] 在不破坏封装性的前提下,捕获一个对象的内部状态,. 使用场合: ,方便以后需要的时候,可以把该对象恢复到先前的状态,可以使用备忘录模式. ,但是如果用接口来让其他对象直接得到这些需要保存的状态,将会暴露对象的实现希捷并破坏对象的封装性,(Observer)发音:[?b'z??v?] 定义: ,所有依赖于它的对象都得到通知并被自动更新. 使用场合; ,其中一个方面的操作依赖于另一个方面的状态变化,那么就可以选用观察者模式,将这两者封装成观察者和目标对象,当目标对象变化的时候,,它们可以独立地改变和复用. ,需要同时连带改变其他对象,而且不知道究竟应该有多少对象需要被连带改变,这种情况可以选用观察者模式,被改的那一个对象很明显就相当于是目标对象,而需要连带修改的对歌其他对象,就作为多个观察着对象了. ,但是你又希望这个对象和其他被它通知的对象是松散耦合的,,这个对象就相当于是目标对象,(State)发音:[ste?t] . 使用场合: ,而且它必须在运行时刻根据状态来改变它的行为,可以使用...,但是状态和行为是有对应关系的,可以在运行期间,通过改变状态,就能够调用到该状态对应的状态处理对象上去从而改变对象的行为. ,而且这些分支依赖于该对象的状态,可以使用....把各个分支的处理分散包装到单独的对象处理类中,这样,(Strategy)发音:['str?t?d??] 定义: 定义一系列的算法,把它们一个个封装起来,. 使用场合; ,仅仅是行为有差异的情况下,可以使用策略模式来使用多个行为中的一个来配置一个类的方法,实现算法动态切换 ,有很多不同实现的情况下,可以使用策略模式来把这些"不同的实现"实现成为一个算法的类层次. ,有与算法相关数据的情况下,可以使用策略模式来防止暴露这些跟算法相关的数据结构. ,并且是通过多个if-else语句来选择这些行为的情况下,(TemplateMethod)发音:['temple?t;-pl?t] 定义: 定义在一个操作中的算法框架, 功能: ,控制了算法的执行流程,而子类不能改变算法的流程,子类的方法的调用由父类的模版方法决定. ,不允许改变的方法屏蔽掉,,实现一个算法的不变的局部,并把可变的行为留给子类来实现的情况. ,应该抽取出来,集中在一个公共类中去实现,从而防止复杂的代码重复 ,这样只允许在这些点进行扩展. 知识: 回调:表示一段可执行逻辑的引用(或者指针),我们把该引用(或者指针)传递到另外一段逻辑(或者方法)里供这段逻辑适时调用 (网站:redhat.)(Visitor)发音:['v?z?t?] 定义: . 使用场合: ,可以使用访问者模式. ,为了防止这些操作使类变得杂乱,可以使用访问者模式. ,但是需要经常给对象结构中的元素定义新的操作,可以使用访问者模式. ,但是需要经常给对象结构中的元素定义新的操作,可以使用访问者模式.