在面向对象中.PPT

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在面向对象中

12.1策略模式的问题 在软件开发中也常常遇到类似的情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能 一种常用的方法是硬编码(Hard Coding)在一个类中,如需要提供多种查找算法,可以将这些算法写到一个类中,在该类中提供多个方法,每一个方法对应一个具体的查找算法;当然也可以将这些查找算法封装在一个统一的方法中,通过if…else…或者case等条件判断语句来进行选择。 如何让算法和对象分开来,使得算法可以独立于使用它的客户而变化? * 软件工程专业 * 12.2策略模式的解决方案 举个例子 出行旅游:我们可以有几个策略可以考虑:可以骑自行车,汽车,做火车,飞机。每个策略都可以得到相同的结果,但是它们使用了不同的资源。选择策略的依据是费用,时间,使用工具还有每种方式的方便程度 。 * 软件工程专业 * 12.2策略模式的解决方案 策略模式:定义一系列的算法,把每一个算法封装起来, 并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。 策略模式把对象本身和运算规则区分开来,其功能非常强大,因为这个设计模式本身的核心思想就是面向对象编程的多形性的思想。 * 软件工程专业 * 12.3策略模式的结构 策略模式的结构中包括三种角色 策略(Strategy) 具体策略(ConcreteStrategy) 上下文(Context) * 软件工程专业 * 12.3策略模式的结构 UML类图 * 软件工程专业 * 第13章模板方法模式 13.1模板方法模式的问题 定义一个抽象类,将部分逻辑以具体方法形式实现,声明一些抽象方法迫使子类实现剩余的逻辑。 不同的子类可以以不同方式实现这些抽象方法,使得父类的剩余逻辑可以有不同的实现。 模板方法模式是一种只使用的继承思想的模式。 模板方法模式就是将业务逻辑步骤和业务实现相分离的模式。 * 软件工程专业 * 13.1模板方法模式的问题 模板方法模式就是定义一个操作中算法骨架,而将一些步骤延迟到子类中。 * 软件工程专业 * 13.2模板方法模式结构 * 软件工程专业 * * * 7.2模式的解决方案 * 软件工程专业 * 7.2模式的解决方案 * 软件工程专业 * 7.2模式的解决方案 外观模式为系统中的一组接口提供一个一致的界面,Fa?ade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 外观模式的关键是为子系统提供一个称作外观的类,该外观类的实例负责和子系统中类的实例打交道 当用户想要和子系统中的若干个类的实例打交道时,可以代替地和子系统的外观类的实例打交道。 * 软件工程专业 * 7.3外观模式的结构 模式的结构中包括两种角色 子系统(Subsystem) 外观(Facade) * 软件工程专业 * 7.3外观模式的结构 UML类图 * 软件工程专业 * 第8章装饰模式 8.1装饰模式的问题 若你从事过面向对象开发,实现给一个类或对象增加行为,使用继承机制,这是所有面向对象语言的一个基本特性。 如果已经存在的一个类缺少某些方法,或者须要给方法添加更多的功能(魅力),你也许会仅仅继承这个类来产生一个新类—这建立在额外的代码上。 通过继承一个现有类可以使得子类在拥有自身方法的同时还拥有父类的方法。但是这种方法是静态的,用户不能控制增加行为的方式和时机。 * 软件工程专业 * 8.1装饰模式的问题 模式问题:你如何组织你的代码使其可以容易的添加基本的或者一些很少用到的 特性,而不是直接将额外的代码写在你的类的内部? * 软件工程专业 * 8.2装饰模式的解决方案 举个例子 一个鸟只能飞100米,如果让它飞行150米,就必须给它装一个电子翅膀,就可以实现飞行更远的距离。 * 软件工程专业 * 8.2装饰模式的解决方案 装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。 它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 装饰模式动态地给一个对象添加一些额外的职责或者行为。就增加功能来说,装饰模式相比生成子类更为灵活。 装饰器模式提供了改变子类的灵活方案。装饰器模式在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 * 软件工程专业 * 8.3装饰模式的结构 装饰模式的结构中包括四种角色: 抽象组件(Component) 具体组件(ConcreteComponent) 装饰(Decorator) 具体装饰(ConcreteDecotator) * 软件工程专业 * 8.3装饰模式的结构 UML类图 * 软件工程专业 * 第9章桥接模式 9.1桥接模式的问题 在软件系统中,某些类型由于自身的逻辑,它具

文档评论(0)

fengruiling + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档