`

图说设计模式 (一)Strategy

 
阅读更多
很久很久以前, 野鸭(MallardDuck)和 红头鸭(RedheadDuck)继承自Duck。



现在我们想让鸭子飞起来



问题出现了,我们又新添加了 橡胶鸭子(RubberDuck),但是RubberDuck不能飞




继承的就像富二代,什么也不做也什么都有,我可不想去再去创一次业,重fly()一次,就像富爸爸给三个儿子财产不均,这个儿子可定会闹事的。




继承必须是所有子类共有的方法,如果不是的话,继承就变得不那么美了,我们可以重构,把不是通用的方法提炼到接口里面。




这样就好了,我们就可以以不变应万变,如何做到呢?就是把变化的和不变的分离。
Separating what changes from what stays the same


怎么分离呢,这就是传说中的 面向借口编程。





这就是OCP(Open-Close Principle)啊,Software entities should be open for extension, but close for modification.


Replace inheritance with delegation


全图


又一个设计原则


恭喜

  • 大小: 102.5 KB
  • 大小: 51.8 KB
  • 大小: 97.5 KB
  • 大小: 14.9 KB
  • 大小: 114.3 KB
  • 大小: 75 KB
  • 大小: 28.5 KB
  • 大小: 60.8 KB
  • 大小: 48.1 KB
  • 大小: 90.7 KB
  • 大小: 132 KB
  • 大小: 27.7 KB
  • 大小: 87.4 KB
分享到:
评论

相关推荐

    Python-图说设计模式

    《Python-图说设计模式》是一本以图形和代码相结合的方式深入解析设计模式的书籍,主要面向Python开发者,尤其适合那些希望通过图形化理解来增强编程思维的读者。设计模式是软件工程中的宝贵经验总结,是解决常见...

    图说设计模式.pdf.zip

    《图说设计模式》这本书是面向程序员和软件工程师的一本经典读物,它以其独特的图文并茂的方式,深入浅出地介绍了设计模式这一核心的软件工程概念。设计模式是经过长期实践验证的、解决常见软件设计问题的模板,是...

    图说设计模式 Graphic Design Patterns

    《图说设计模式 Graphic Design Patterns》这本书使用图形和代码结合的方式来解释设计模式,使得读者更容易理解和应用这些模式。每个设计模式都有对象结构图和时序图,用于展示对象之间的交互细节。状态模式中,还会...

    【Others】 图说设计模式.pdf

    【Others】 图说设计模式.pdf

    图说设计模式 HTML 版

    软件模式并非仅限于设计模式,还包括 架构模式、分析模式和过程模式等,实际上,在软件生存期的每一 个阶段都存在着一些被认同的模式。 本书使用图形和代码结合的方式来解析设计模式; 每个模式都有相应的对象结构...

    design-patterns图说设计模式

    软件模式并非仅限于设计模式,还包括 架构模式、分析模式和过程模式等,实际上,在软件生存期的每一 个阶段都存在着一些被认同的模式。 本书使用图形和代码结合的方式来解析设计模式; 每个模式都有相应的对象结构...

    图说设计模式

    软件模式是将模式的一般概念...软件模式并非仅限于设计模式,还包括 架构模式、分析模式和过程模式等,实际上,在软件生存期的每一 个阶段都存在着一些被认同的模式。 本书使用图形和代码结合的方式来解析设计模式;

    业务系统的微服务化改造方案.pdf 利用网页在邮件微信平台群发.pdf 图像理解中的卷积神经网络.pdf 图说设计模式.pdf 基于深度神经网络的股票智能预测系

    图说设计模式.pdf 基于深度神经网络的股票智能预测系统的设计与实现.pdf 实例_来源收入统计副本5447.pdf 微博数据分析软件概述.pdf 微服务架构-单体架构-面向服务的架构的区别.pdf 用例编写模板——excel版.xls 股票...

    设计模式详细讲解(网页版)

    设计模式是软件工程中的一种重要概念,它是在特定上下文中解决常见问题的模板,为软件设计提供了一套可复用的解决方案。设计模式并非具体的代码或库,而是描述在某些特定场景下,如何设计和实现组件之间交互的一种...

    yueqc1#AndroidDevelopmentArticles#设计模式1

    设计模式之旅图说设计模式小猪的设计模式初涉总结Java之美[从菜鸟到高手演变]之设计模式Java之美[从菜鸟到高手演变]之设计模式二Java之美[从菜鸟到高手演

    易安图说 _ 怎样设置一个完美的密码.pdf

    易安图说 _ 怎样设置一个完美的密码 威胁情报 安全架构 网络与基础架构安全 渗透测试 大数据

    陈氏太极拳图说简体版(陈鑫)

    《陈氏太极举图说》一书经过重新修订,内容上做了部分更正,并删除了与原书主题不相关的内容,以保证书籍的严谨性和实用性。书中的“凡例”、“学源须知”等章节经过陈氏家族成员的精心修订,体现了太极拳理念的传承...

    typescript-design-patterns:TypeScript中的设计模式

    TypeScript Design Patterns 该项目基于 TypeScript 实现了下列设计模式: Creational(创建型模式) Structural Patterns(结构型模式) ...图说设计模式 最易懂的设计模式解析 ​JavaScript设计模式与开发实践

    变频器实用电路图集与原理图说yy1

    总之,“变频器实用电路图集与原理图说yy1”是一本涵盖了变频器设计和应用多个方面的综合指南。通过对书中提到的各种电路图的学习,读者不仅能掌握变频器的基本原理,还能了解到如何根据具体需求设计出高效可靠的...

    图说“什么是数据挖掘

    数据挖掘是一种从海量数据中提取有价值知识的过程,它利用统计学、机器学习和人工智能等技术,揭示隐藏在数据中的模式、关联、趋势和规律。在这个过程中,数据被转化为可理解的信息,进而支持决策制定和业务优化。 ...

    MP31819_examples_图说运算思维与演算逻辑训练_

    【标题】"MP31819_examples_图说运算思维与演算逻辑训练_" 提供的是一份关于使用Python进行运算思维和演算逻辑训练的资料。这可能是一个教学资源包,旨在帮助学习者通过实例和图形化的方式理解如何在编程中运用这两...

    图说建筑智能化系统.pdf

    标题与描述中的“图说建筑智能化系统”指向的是一个关于建筑智能化系统的专业文档或书籍,其主要内容涵盖了通过图像和图表来解析和展示建筑智能化系统的工作原理、设计思路、技术架构以及实际应用案例等。...

    图说平行志愿投档流程.doc

    图说平行志愿投档流程.doc

    高中历史之图说历史第一次世界大战罕见的彩色照片素材

    高中历史之图说历史第一次世界大战罕见的彩色照片素材

    变频器实用电路图集与原理图说

    一个优质的变频器设计,可以有效减少能源浪费,提升控制精度,降低维护成本。 要深入理解变频器实用电路图集与原理图,首先需要有一定的电子电路知识基础,对变频器的工作原理和各个电路部分的功能有所了解。此外,...

Global site tag (gtag.js) - Google Analytics