准备开始写些设计模式的随笔,这是第一篇,概述主要回顾下六大原则

先用轻松和谐的语言描述下这6个原则:

单一职责

  • 每个类甚至每个方法都只要做自己分内的事,不要背别人的锅,也就是功能要分类,代码要解耦

里氏替换

  • 简单点就是子类能够出现的地方,父类一定能出现,设计模式的继承和实现在这里体现的非常多

依赖倒置

  • 高层模块不依赖低层模块的细节,而是依赖抽象(不依赖具体类而依赖于接口),这就是所谓的要面向接口编程

接口隔离

  • 定义接口方法应该合理化,尽量追求简单最小,避免接口臃肿

迪米特法则 | 最少知道

  • 你给我接口,我调用你,其他的不要废话。我们最好保持君子之交,你不要问我的过去,我也不想告诉你我怎么生活的

  稍微解释下:一个类应该对自己需要耦合或调用的类知道得最少,类的内部如何实现、如何复杂都与调用者或者依赖者没关系,

调用者或者依赖者只需要知道他需要的方法即可,其他的一概不关心,例如常见的组合、聚合关系

  • 一个词:解耦或降耦

开闭原则

  • 类、模块和函数应该对扩展开放,对修改关闭

然后我们再给出设计时的2个关键词,以下是我总结的:

抽象类或接口:没有接口,没有父类不要谈设计模式

复用类:用的最多的组合、继承、代理方式

下一篇给出23种设计模式分类,坊间流传各种更多超过23种的,我们不关心,其实都是一些分得更细的

最新文章

  1. SCCM 2012 R2安装部署过程和问题(一)
  2. mybatis+MySQL--CRUD
  3. Ubuntu14.04桌面版基本配置
  4. ThreadLocal的设计与使用(原理篇)
  5. C++学习3
  6. maven插件:tomcat插件和jetty插件的区别
  7. MongoDB的SSL实现分析
  8. Android 保存联系人,包括部门\职位\传真\地址\照片
  9. 模板template
  10. Android开发文摘集合1
  11. [基础] Python问题
  12. FFT与多项式、生成函数题目泛做
  13. Struts2大约Action系统培训6大约action的接受三个参数的方法
  14. C--控制语句循环例子
  15. siverlight 后台动态设置图片路径的总结
  16. ChineseUtils
  17. JVM 性能调优 -Xmx、-Xms、-Xss
  18. [ci]jenkins-slave-ssh docker容器化-用户名密码
  19. python 函数返回值笔记
  20. Auto Layout on iOS Versions prior to 6.0

热门文章

  1. Spring-Security (补充)
  2. 直接用编译器按ctrl+F5运行和双击运行结果不一样
  3. ionic:ionic 教程
  4. Codeforces 1167C - News Distribution
  5. 剑指offer——25合并两个排序的链表
  6. Windows环境下安装openface
  7. 20130330 printf数组改变 数组指针便利二维数组 二级指针遍历二维数组 ZigZag
  8. CSS3 RGBA等于RGB加上opacity吗?
  9. jquery操作html元素之(删除元素)
  10. 第四天:语句、表达式与if分支、循环语句