设计模式遵循的基本原则
-
开闭原则OCP
-
里氏代换原则LSP
-
依赖倒转原则DIP
-
接口隔离原则ISP
-
合成/聚合复用原则CARP
-
迪米特法则LoD
1、开闭原则OCP:对扩展开放,对修改关闭
解决问题的关键在于抽象化。在预见可能变化的前提下,给出一个一劳永逸、不再更改的抽象设计,此设计允许有无穷无尽的行为在实现层被实现。
优点:
-
通过扩展已有的软件系统,可以提供新的行为,以满足对软件的新需求,是变化中的软件系统有一定的适应性和灵活
-
已有的软件模块,特别是最重要的抽象层模块不能再修改,这就是变化中的软件系统有一定的稳定性和延续性
2、里氏代换原则LSP :基类可出现,则子类可出现,反之不成立
里氏代换原则是考量模型中对象之间是否符合继承复用的核心原则
3、依赖倒转原则DIP :依赖于抽象,不要依赖于具体
目标:解耦,不让具体实现层的变化造成更多的影响
优点:逻辑与实现的充分解耦
缺点:不易实现,有时趋于繁琐——把握稳定性
4、接口隔离原则ISP :多个专门的接口好过一个总接口
整洁——仅从美学角度分析
系统的可维护性得到增强。向客户提供的public接口是一种承诺,一旦提供就很难收回。做为提供方,没人愿意多做承诺。而且一旦服务发生变化,很容易定位受影响的客户端和不受影响的客户端。
5、合成/聚合复用原则CARP:能用合成/聚合就不要用继承
继承的优点
新的实现容易,超类功能可以通过集成自动进入子类
修改或扩展继承而来的实现较为容易
继承的缺点
继承会破坏封装,因为继承会将超类的实现细节暴露给子类——白箱复用
如果超类的实现发生改变,则子类也不得不改变——牛鞭效应
从超类继承而来的实现是静态的,无法在运行时间内改变,缺乏灵活性
6、迪米特法则LoD:不要与陌生人说话
别称:LKP(Least Knowledge Principle),最少知识原则——一个对象应当对其他对象有尽可能少的了解,也应当尽量少的被其他对象了解
狭义迪米特:如果两个类不必直接通信则不建立通信,通过第三方转发
广义迪米特:要注意信息的隐藏
Spring3的源代码,大量运用了设计模式,而且非常精巧。不得不佩服。DIP,ISP得到了充分地体现
。这样的代码,看起来真得是非常舒服……
分享到:
相关推荐
设计模式六大原则详解 设计模式原则详解 设计模式原则详解
设计模式与设计原则.pdf
详细介绍了设计模式六大原则,配有示例代码和图片,有开闭原则,单一职责原则,里氏替换原则,依赖倒置原则,接口隔离原则,迪米特法则等等。
详细介绍设计模式的六大原则,有不足之处希望大家多指教。参考《设计模式之禅》
内容包括统一建模语言基础知识、面向对象设计原则、设计模式概述、简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式、单例模式、适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、...
100多篇与设计模式学习相关的文章,涵盖了七个面向对象设计原则和24个设计模式(23个GoF设计模式 + 简单工厂模式)
24种设计模式介绍与6大设计原则希望这本书的阅读者具备最基本的代码编写能力,您是一个初级的 coder,可以从中领会到怎么设计 一段优秀的代码;您是一个高级程序员,可以从中全面了解到设计模式以及 Java 的边角技术...
Java设计模式中单一职责原则详解.rar
Java 全部23种设计模式全面详解 设计模式的六大原则 1、开闭原则(Open Close Principle) 2、里氏代换原则(Liskov Substitution Principle) 3、依赖倒转原则(Dependence Inversion Principle) 4、接口隔离原则...
关于23中设计模式的详解范例,以及面向对象编程的基本原则!
七种设计模式详解讲解文档-面试必备:策略设计模式,单例设计模式,单一职责模式,简单工厂设计模式,开放封闭设计模式,依赖倒转原则,装饰者模式。
2分法-通用存储过程分页(top max模式)版本(性能相对之前的not in版本极大提高) 分页存储过程:排序反转分页法 优化后的通用分页存储过程 sql语句 一些Select检索高级用法 SQL server 2005中新增的排序函数及应用 ...
设计模式介绍与6大设计原则详解
我们在进行面向对象设计(OOD)时应该怎样进行,遵循什么原则呢?我们或许听说过设计模式,那是针对特定的问题提出的特定的解决方法。面向对象的设计从提出到现在经过很多人的经验和实践,也总结出了很多原则。
内聚、耦合的概念设计模式设计模式的原则单一职责原则用户管理电话通话开放-封闭原则书店例子开闭原则对测试的影响。怎么使用开闭原则银行例子里氏代换原则枪的例子长方形和正方形的例子合成聚合复用原则手机例子...
本文部分代码写的比较简洁,可结合其他不可帮助理解 ...设计模式原则 很多优秀的文章和书籍都讲的很明白了,我说下自己的体会。 1.单一职责原则,就是一个类只负责做一件事情。这样就可以做到解耦合的效果,
1. 详细介绍了常用java设计模式,并结合代码实例进行了详细说明 2. 详细介绍了常用设计原则 3. 好书,不下载别后悔!
主要介绍了详解Java设计模式中的依赖倒置原则,针对面对对象编程中的抽象的运用,需要的朋友可以参考下
工厂模式(Factory Design Pattern)作为一种创建型设计模式, 遵循了开放-封闭原则, 对修改封闭, 对扩展开放. 工厂方法(Factory Method)模式就是要创建”某种东西”. 对于工厂方法模式, 要创建的”东西”是一个产品,这...