算法切换

关键字:算法切换

意图:

关注算法的封装:将每一个算法封装到单独的类,使他们可以相互替换。

优点:对象(员工)与算法(岗位薪资计算方式)隔离。

缺点:客户端代码必须知道所有算法的实现,并自行选择。

对象与算法隔离开来,这样就可以实现

需要更改的部分可以切换,并且隔离开来

不需要切换的部分,不会影响变化的类。

和算法相关的变化隔离开来

例如:

当一个对象使用其他父类的子类的不同方法,方法中的算法不同,需要更改方法时。

使用组合替代继承来解决此问题。

组合复用原则

项目简单实用方式_组合替代继承_算法切换相关推荐

  1. 项目简单实用方式_组合替代继承_状态决定行为

    状态决定行为 //类图上无变化. //解决算法切换,缺点 //不依赖客户端传递. 意图: 对象的状态改变时,行为可以随之变化. 优点: 主要解决的是对象状态的迁移.自身决定,自身维护

  2. 组合与继承c++_组合与继承

    组合与继承c++ Composition vs Inheritance is one of the frequently asked interview questions. You must hav ...

  3. C++_类和对象_C++继承_菱形继承_或钻石继承_问题及利用虚继承解决该问题---C++语言工作笔记068

    然后我们再来看一下在c++继承中的,一个很好玩的内容, 菱形继承,又叫 钻石继承. 比如我们有个动物类,然后 羊继承了这个动物类,然后驼也继承了这个动物类, 然后,羊驼,通过多继承,继承了羊类和驼类, ...

  4. Python 进阶_OOP 面向对象编程_组合与继承

    #目录 前言 组合 派生 通过继承来覆盖重载方法 最常用的重载场景实例方法的重载 从标准类中派生类方法的重载 前言 我们定义一个类是希望能够把类当成模块来使用,并把类嵌入到我们的应用代码中,与其他的数 ...

  5. 简单实用的电梯停电报警电路_光电报警电子电路图讲解

    电路图简介: 这里介绍一种声报警电路,如下图所示,只要电梯电源出现故障,在电梯的配电房即会发出声报警信号.该电路工作方式如下:电路由电池6V供电,一旦电梯交流电源出现故障,电路即发 大家知道,若电梯电 ...

  6. spring-test的简单实用方式

    为什么80%的码农都做不了架构师?>>>    1. 通过maven引入spring-test框架 <dependency><groupId>org.spri ...

  7. 《On Java 8》- 面向对象之代码复用(组合、继承、委托)

    文章目录 小结 原文 组合语法 继承语法 委托 结合组合与继承 组合与继承的选择 小结 根据<On Java 8>: 第八章复用 总结 复用指的是代码复用,一般情况下有两种方式:组合.继承 ...

  8. java组合与继承始示例_排列组合:用公式示例解释的差异

    java组合与继承始示例 Permutations and Combinations are super useful in so many applications – from Computer ...

  9. Emscripten 单词_分享15个英语单词记忆方法,简单实用,赶紧收藏吧!

    分享15个英语单词记忆方法,简单实用,赶紧收藏吧! 单词是学习英语的基石,英语程度的好坏,单词是最重要的衡量标准.单词的构成方式其实很简单,就是26个字母的排列组合. 那有什么方法能够让我们更好地把单 ...

最新文章

  1. swift 跳转网页写法
  2. [快报][贴图] ANSI Art 的新形式 - CSS-ANSI Art
  3. Alpha Blending a Bitmap 失败 原因
  4. linux-shell命令之mount【挂载命令】
  5. No-3.Linux 终端命令格式
  6. Depth-first Search深度优先搜索专题6
  7. (后端)Java中关于金额大小写的工具类
  8. php date hi,php中时间戳和日期格式的转换
  9. windows之2012缺少api-ms-win-crt**.dll
  10. scala case class与class区别
  11. c语言setlocale第二个参数,setlocale_本地化支持 | Localization support_C_参考手册_非常教程...
  12. C Primer Plus(第6版)第十章复习题答案
  13. 计算机无法读取tf卡,为什么电脑不识别TF卡?
  14. python头像转卡通_用python将你的头像“卡通化”
  15. ISE WARNING:ProjectMgmt - File /*filePath*/ is missing.解决方法
  16. {大学快毕业的程序员,现在开始写博客}
  17. 聂易铭:3月20日数字货币筑底失败,破位遥遥无期
  18. PHP图片打包压缩下载
  19. oracle gbk ebcdic,文件编码 ANSI、GBK、GB2312、MS936、MS932、SJIS、Windows-31 、EUC-JP 、EBCDIC 等等之间的区别与联系...
  20. jetson xiaver NX 安装tensorflow object detection api 遇到的tensorflow-addons 不能安装问题

热门文章

  1. AAAI 2022有哪些值得读的NLP相关论文?
  2. Swin Transformer升级版来了!30亿参数,刷榜多项视觉任务
  3. 深度强化学习落地指南:弥合DRL算法原理和落地实践之间的断层 | 文末送书
  4. Learning to Learn:图神经网络上的元学习
  5. 直播 | 北京邮电大学徐逸辰:图对比学习研究进展
  6. NAACL 2019最佳论文:量子概率驱动的神经网络
  7. 微软开源项目NeuronBlocks - 像搭积木一样构建NLP深度学习模型
  8. Numpy-矩阵的合并
  9. ps ico插件_常用 PS 插件合集(1)
  10. 【Linux部署】借助Docker部署Redis集群(Docker网卡创建+6个Redis集群搭建shell脚本)