- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 UML系统建模与分析设计 8.3.9 状态模式(State) 状态模式允许一个对象在其内部状态变化时改变它的行为。 下面两种情况之一可以使用状态模式: 1)一个对象的行为取决于它的状态,并且它必须在运行 时刻根据状态改变它的行为。 2)一个操作中含有庞大的多分支的条件语句,且这些分 支依赖于该对象的状态。 参与状态模式的对象有: 语境对象Context定义客户接口,并维护一个 定义ConcreteState子类的实例。 抽象类State定义一个接口以封装与语境对象 Context的一个特定状态相关的行为。 具体状态ConcreteState子类实现一个与语境 对象Context的一个状态相关的行为。 8.3.10 策略模式(Strategy) 将一组算法中的每个算法封装到具有共同接口的独立类中,使得它们可以相互替换。 1.使用策略模式的时机 多个类之间的区别仅在于它们的行为,使用策略模 式可以动态地选择一种行为。 一个系统需要动态地在几种算法中选择一种。 一个系统的算法使用的数据不可以让客户端知道。 避免使用难以维护的多重条件选择语句,体现面向 对象设计的概念。 2.策略模式的结构 策略模式涉及到三个角色: 语境(Context)角色:持有策略类Strategy的引用。 抽象策略(Strategy)角色:这是一个接口或抽象类。 具体策略(ConcreteStrategy)角色:以Strategy接口 实现某个具体算法。 3.策略模式的优点和缺点 策略模式的优点有: 策略模式提供了管理相关的算法族的办法。避免重复 的代码。 策略模式提供了可以替换继承关系的办法。使其不可 能动态改变算法或行为。 使用策略模式可以避免使用多重条件转移语句。 策略模式的缺点有: 客户端必须知道所有的策略类,并自行决定使用哪一 个策略类。 策略模式造成很多的策略类。 8.3.11 访问者模式(Visitor) 访问者模式可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 访问者模式通常适用于下列情况: 1)一个对象包含很多有不同接口的类对象,这些 对象实施一些依赖于其具体类的操作。 2)对一个对象中的对象进行很多不相关的操作, 而又不想直接接触这些对象的类。 3)定义对象结构的类很少改变,但经常需要在此 结构上定义新的操作。 8.4.1 设计模式遵循的原则 (1)开-闭原则(Open-Closed Principle,OCP)。对扩 展开放,对修改关闭。 (2)里氏代换原则(Liskov Substitution Principle, LSP)。软件实体如果使用的是一个基类,那么一定 适用于其子类,而且它根本不能察觉出基类对象和 子类对象的区别。 (3)依赖倒转原则(Dependence Inversion Principle, DIP)。要依赖于抽象,不要依赖于具体。即针对接 口编程,不要针对实现编程。 (4)接口隔离原则(Interface Segregation Principle,ISP)。一个类对另外一个类的依赖是建 立在最小的接口上。 8.4 设计模式遵循的原则和使用策略 (5)合成/聚
文档评论(0)