常用设计模式使用-KS.LI.pptx

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
常用设计模式使用-- KS.LI型1.创建型:2.结构型:3.行为型:factory、Builder、Singleton …Flyweight …Template Method、Strategy、/link?url=Ee0Lcd6C2xzVqWjBaoxyuCnlWNEBma0ktldIpnFCkGgdVvq14LfQ9L4uQ_E4WXnGYfbw1b7MLuE9wRVafyu69K&wd=&eqid=bf0989400004df5d000000035bd3fd42 Null Object、 Observer …Flyweight所谓享元模式就是运行共享技术有效地支持大量细粒度对象的复用。系统使用少量对象,而且这些都比较相似,状态变化小,可以实现对象的多次复用。 共享模式是支持大量细粒度对象的复用,所以享元模式要求能够共享的对象必须是细粒度对象。??内部状态:在享元对象内部不随外界环境改变而改变的共享部分。??外部状态:随着环境的改变而改变,不能够共享的状态就是外部状态。 由于享元模式区分了内部状态和外部状态,所以我们可以通过设置不同的外部状态使得相同的对象可以具备一些不同的特性,而内部状态设置为相同部分。在我们的程序设计过程中,我们可能会需要大量的细粒度对象来表示对象,如果这些对象除了几个参数不同外其他部分都相同,这个时候我们就可以利用享元模式来大大减少应用程序当中的对象。如何利用享元模式呢?这里我们只需要将他们少部分的不同的部分当做参数移动到类实例的外部去,然后再方法调用的时候将他们传递过来就可以了。这里也就说明了一点:内部状态存储于享元对象内部,而外部状态则应该由客户端来考虑。使用场景1. 如果一个系统中存在大量的相同或者相似的对象,由于这类对象的大量使用,会造成系统内存的耗费,可以使用享元模式来减少系统中对象的数量。2. 对象的大部分状态都可以外部化,可以将这些外部状态传入对象中3.如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象。4. 应用程序不依赖对象标识。如:常量池(IntegerCache)行为型上述场景你会如何实现呢?Strategy:1.Strategy:策略接口,用来约束一系列具体的策略算法。Context使用这个接口来调用具体的策略,实现定义的策略。2.ConcreteStrategy:具体的策略实现,也就是具体的算法实现。???????3.Context:环境上下文,负责与具体的策略交互,通常上下文会持有一个真正的策略实现。??????2.ConcreteStrategy:具体的策略实现,也就是具体的算法实现。???????3.Context:环境上下文,负责与具体的策略交互,通常上下文会持有一个真正的策略实现。使用场景1. 一个系统需要动态地在几种算法中选择一种的情况??????? 2. 如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态地 让一个对象在许多行为中选择一种行为 3.如果一个对象有很多的行为,如果不使用合适的模式,这些行为就只好使用多重的if-else语句来实现,此时,可以使用策略模式4 .不希望客户端知道复杂的、与算法相关的数据结构,在具体策略类中封装算法和相关的数据结构,提高算法的保密性与安全性。 优点: a.策略类之间可以自由切换? b.易于扩展? c.避免使用多重条件判断。???????缺点: a.策略类增多? b.策略类都需要对外暴露 使用:结合Flyweight 、factory、enum策略枚举/link?url=Ee0Lcd6C2xzVqWjBaoxyuCnlWNEBma0ktldIpnFCkGgdVvq14LfQ9L4uQ_E4WXnGYfbw1b7MLuE9wRVafyu69K&wd=&eqid=bf0989400004df5d000000035bd3fd42空/link?url=Ee0Lcd6C2xzVqWjBaoxyuCnlWNEBma0ktldIpnFCkGgdVvq14LfQ9L4uQ_E4WXnGYfbw1b7MLuE9wRVafyu69K&wd=&eqid=bf0989400004df5d000000035bd3fd42对象/link?url=Ee0Lcd6C2xzVqWjBaoxyuCnlWNEBma0ktldIpnFCkGgdVvq14LfQ9L4uQ_E4WXnGYfbw1b7MLuE9wRVafyu69K&wd=&eqid=bf0989400004df5d000000035bd3fd42模式/link?url=Ee0Lcd6C2xzVqWjBaoxyuCnlWNEBma0ktldIpnFCkGgdVvq14LfQ9L4uQ_E4WXnGYfbw1b7MLuE9wR

文档评论(0)

138****3761 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档