设计模式(Design Patterns)

设计模式是一套被反复使用,多数人知晓的,经过分类编目的,代码设计经验的总结。使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码的可靠性。毫无疑问,设计模式于己于他人于系统都是多赢的。希望广大程序爱好者,学好设计模式,做一个优秀的软件工程师。

一、设计模式的分类

总体来说设计模式分为三大类:

创建型模式 , 共五种:工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。

结构型模式 , 共七种:适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。

行为型模式 , 共十一种:策略模式,模板方法模式,观察者模式,迭代子模式,责任链模式,命令模式,备忘录模式,状态模式,访问者模式,中介者模式,解释器模式。

其实还有两类:并发型模式和线程池模式。

二、设计模式的六大原则

1、开闭原则(Open Close Principle)

开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。为了是程序的扩展性好,易于维护和升级。

想要达到这种效果,我们需要使用接口和抽象类。

2、里氏代换原则(Liskov Substitution Principle)

里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承 复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开- 闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。—— From Baidu 百科

3、依赖倒转原则(Dependence Inversion Principle)

这个是开闭原则的基础,具体内容:针对接口编程,依赖于抽象而不依赖于具体。

4、接口隔离原则(Interface Segregation Principle)

这个原则的意思是说:使用多个隔离的接口,比使用单个接口要好。还是一个降低类之间耦合度的意思。降低依赖,降低耦合。

5、迪米特法则(最少知道原则)(Demeter Principle)
  为什么叫最少知道原则,就是说:一个实体应当少的与其他实体之间发生相互作用,使得系统功能模块相对独立。

6、合成复用原则(Composite Reuse Principle)

原则是尽量使用合成/聚合的方式,而不是使用继承。

最新文章

  1. MySQL show processlist命令详解
  2. DOM Document
  3. 安装win8、ubuntu双系统的过程
  4. [未完成]关于GUI Java图形化界
  5. java中字符串切割的方法总结
  6. sql 批处理、获取自增长、事务、大文本处理
  7. Codeforces #345 Div.1
  8. Ubuntu启动、停止、重新启动MySQL,查看MySQL错误日志、中文编码错误
  9. C语言API编写窗口界面和button
  10. 标准IO库
  11. flume1.8 Sinks类型介绍(三)
  12. 从头开始搭建一个VSCode+NetCore的项目
  13. Kafka消费者-从Kafka读取数据
  14. Java编程语言下Selenium 对于下拉框,单选,多选等选择器的操作
  15. sys.stdout.flush-倒计时
  16. NO.5   算法测试(词条统计)
  17. AFN\HTTPS\UIWebView
  18. position:sticky粘性布局
  19. 学习opengl第一步
  20. 【opencv基础】cv::Point类型与行列的关系

热门文章

  1. Django 实战 之 搭项目(正在更新)
  2. Windows I/O模型之一:Select模型
  3. (原)Eclipse的java中文件读写
  4. select2使用详解
  5. 用PHP向MySql中写入图片
  6. 【5】将服务部署到本机(Ubuntu14.04)
  7. c# vs2010 winfrom控件检测网络环境
  8. JavaScript插件 Bootstrap自带了13个jQuery插件,这些插件为Bootstrap中的组件赋予了“生命”
  9. 分析java 嵌套类与内部类
  10. Shell使用