1.0 找出代码中需要变化的部分 把他们独立出来

那么怎么找出来需要变化的部分呢?

2.0 针对接口编程 而不是针对实现编程

3.0 多用组合 少用继承

例如鸭子类 假设Duck 是父类 他的实现类SmallDuck 所谓多用组合少用继承

就是说鸭子的行为不要直接继承父类的 而是和其他类组合起来用的 也就是其

他行为 你是继承父类或者在父类实现的,而是继承其他的类或者接口 然后在

父类中呗一起使用 这就是所谓的组合

组合的优点 :系统具有很大的弹性 不仅可以把算法组封装成类 还可以动态的在运行时改变行为

共享词汇 就是相当于专业术语 你一说大家就懂了 可以避免歧义 顺利沟通

例如我们在说观察者模式 懂设计模式的人一听就懂了 如果没有这些 那么就很费劲

4.0 为交互对象松耦合而努力

观察者模式


持续更新中。。。

head first设计模式之设计原则相关推荐

  1. 设计一个矩形类rectangle_万字长文带你捋清六种设计模式的设计原则(建议收藏)...

    对于设计模式,自己很早之前就看了好多本设计模式书籍,其中一些还看了好几遍,也一直希望自己能在编码的时候把这些设计模式用上去.可是,在日常的打码中,用的最多的就是单例,其次是观察者和建造者模式 ( bu ...

  2. 设计模式 - 七大设计原则(一)

    设计模式 - 七大设计原则(一) 概述 简单介绍一下七大设计原则: 开闭原则:是所有面向对象设计的核心,对扩展开放,对修改关闭 依赖倒置原则:针对接口编程,依赖于抽象而不依赖于具体 单一职责原则:一个 ...

  3. Go设计模式(3)-设计原则

    上一篇文章Go设计模式(2)-面向对象分析与设计里讲过,做设计最重要的是保留合适的扩展点.如何才能设计出合适的扩展点呢? 这篇文章会讲解一下经典的设计原则.这些设计原则大家可能都听过,但可能没有想过为 ...

  4. 【设计模式】设计原则

    [设计模式]设计原则 在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据6条原则来开发程序,从而提高软件开发效率.节约软件开发成本和维护成本. 1 开闭原 ...

  5. 设计模式-六大设计原则(附加实际开发建议以及计算器例子)

    使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性.设计模式使代码编制真正工程化,是软件工程的基石脉络,如同大厦的结构一样. 文章结构: 1.单一职责原则(SRP): 2.里氏替换原 ...

  6. Java设计模式-七大设计原则

    Java设计模式 设计模式七大原则 设计模式的目的 编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战,设计模式是为了让程序(软件),具有更好 代码 ...

  7. 后端学习 - 设计模式与设计原则

    文章目录 设计原则 1 单一职责原则 2 开闭原则 3 Liskov 替换原则 4 依赖倒置原则 5 接口隔离原则 6 迪米特法则 设计模式:创建型模式 1 工厂模式 2 抽象工厂模式 3 单例模式 ...

  8. systemverilog硬件设计及建模_UVM方法学与设计模式(一):从OOP的本质,设计模式到设计原则...

    面向对象编程(OOP)是业界使用非常广泛的一种编程范式.以C++的OOP为例,其包含通常我们所说的OOP三大要素:继承.封装和多态. C++ OOP 组成 C++的OOP内容相对来说比SystemVe ...

  9. 设计模式与设计原则 —— 一句话

    一.设计原则 二.设计模式 范围\目的 创建型模式 结构型模式 行为型模式 类模式 工厂方法 (类)适配器 模板方法.解释器 对象模式 单例 原型 抽象工厂 建造者 代理 (对象)适配器 桥接 装饰 ...

  10. 设计模式七大设计原则

    文章目录 1.什么是设计模式 2.单一职责原则 3.开闭原则 4.接口隔离原则 5.依赖倒置原则 6.迪米特法则(最少知道原则) 7.里式替换原则 8.组合优于继承 设计模式主要是为了满足一个字 变, ...

最新文章

  1. Pandas | 5 种技巧高效利用value-counts
  2. 我非要捅穿这 Neutron(二)上层资源模型篇
  3. Machine Learning - Andrew Ng on Coursera (Week 4)
  4. golang处理kill命令总结
  5. jdbc java数据库连接 3)Statement接口之执行DDL和DML语句的简化
  6. [NOI2015]寿司晚宴(状压dp)
  7. 前端必须要有的学习能力
  8. POJ1328Radar Installation
  9. 2019年7月19日星期五(交叉编译工具)
  10. 计算科学导论读书笔记
  11. 中国城市公园规划建设行业运行状况与趋势预测展望报告2022-2028年版
  12. 打开计算机文件反应慢怎么解决方法,电脑反应慢怎么办?常见原因与解决办法...
  13. python设计贪吃蛇游戏论文_150行python代码实现贪吃蛇游戏
  14. Word章节自动编号+公式编号
  15. android图片上传大小限制,Android解决图片上传过大问题
  16. 相似度系列-5:语义方法:BERTSCORE: EVALUATING TEXT GENERATION WITH BERT
  17. access 报表隔行底纹_excel中如何隔行填充底纹
  18. ie检查服务器证书吊销,浏览器提示“该站点安全证书的吊销信息不可用”的解决方法...
  19. 机器学习sklearn之预估器(estimator)使用
  20. 内地朋友对香港银行开户的需求越发增多!

热门文章

  1. weblogic 12c 安装与下载
  2. Java自动化测试——打开浏览器
  3. Web版Telnet工具设计与实现
  4. 关于keil注册机的问题
  5. Simulink里的S函数介绍(Matlab-1)
  6. NLP自然语言理解-中科院(宗成庆) P1~P4
  7. 2018年,免费、无水印录屏软件有哪些?
  8. ApolloStudio高手之路(12):机器视觉图像匹配定位与激光打标领域深度结合(基于海康威视VisionMaster九点标定、模板快速匹配定位、标定转换以及金橙子EzCad2二次开发)
  9. QT设计师(designer)下载安装
  10. 苹果iPad手机如何无线投屏电脑使用教程