设计模式的设计原则
来源:互联网 发布:淘宝咸鱼网怎么样 编辑:程序博客网 时间:2024/06/10 02:31
设计模式中的六大原则
设计模式是前人实践经验的结晶,我们学习设计模式并不是最终的目的,最终的目的是要在设计模式当中领悟学会设计原则。其实所有的设计模式都离不开设计原则,都是按照一定的设计原则进行的。设计模式中最重要的六大原则如下。
1.‘’开-闭‘’原则(ocp)
英文为Open-Closed Principle ,简称OCP。阐述的内容是:一个软件实体应当对扩展开放,对修改关闭。也就是说,软件系统中包含的各种组件,如模块(Modules)、类(classes)、及功能(Functions)等,应该在不修改现有代码的基础上,引入新功能。‘’开-闭‘’原则中的‘’开‘’,是指对于组件功能的拓展是开放的,是允许对其进行功能扩展的;‘’开-闭‘’原则中的‘’闭‘’,是指对于原有代码的修改是封闭的,即不应该修改原有的代码。
2.单一职责原则(SRP)
英文为Singel Responsibility Principle,简称SRP。阐述的内容是:一个类,应该只有一个引起它变化的原因。即一个类中应该只有一个职责,如果一个类有一个以上的职责,那么这些职责就会耦合在一起,当一个职责发生变化时,可能会影响其他的职责。另外,多个职责耦合在一起,会影响复用性。
3.依赖倒置原则(DIP)
英文为Dependence Inversion Principle,简称DIP。阐述的内容是:要依赖于抽象,而不要依赖于具体实现。简单地说就是要求针对抽象编程,而不是针对实现编程,这样就降低了客户与实现模块间的耦合。
4.接口隔离原则(ISP)
英文为Interface Segregation Principle,简称ISP。使用多个隔离的接口,分离不同的接口行为。也就是说一个类对另外类的依赖性应当建立在最小接口上。应当将不同的角色交给不同的接口处理。
5.里氏替换原则(LSP)
英文为Likov Substitution Principle,简称LSP。该原则是对‘’开-闭‘’原则的补充,讲的是基类和子类的关系,是由麻省理工学院的Likov于1987年提出的一个关于继承的原则。阐述的内容是:继承必须确保基类所拥有的性质在子类中仍然成立。也就是说,在一个软件系统当中,子类应该可以替换任何基类能够出现的地方,并且经过替换之后,系统仍然可以正常工作。子类还能够在基类的基础上增添新的行为。
6.迪米特法则(LoD)
英文为Law of Demeter,简称LoD。1987年秋天由美国Northeastern University 的IanHolland提出,被UML的创始者之一Booch等普及。后来,因为在经典著作》《The Programmer》中出现而广为人知。迪米特法则又称为最少只是原则,(Least Knowledge Principle,LKP),阐述的内容简单点说就是:只和密友交谈。即一个软件实体应当尽可能少地与其他实体发生相互作用。每一个软件单位对其他的单位都只有最少的知识,而且局限于那些于本单位密切相关的软件单位。从而,减少类与类之间的依赖,减低类之间的耦合。
在实践中发现的真理是最让人信服的。上面几种设计原则,都是在实践当中总结出来的。掌握了以上设计模式六大原则,并能够灵活运用,那么在软件设计领域中就会纵横驰骋,无所不能。设计原则并不是只有这么多,还有其他内容,这六项是最重要的。可能还有更好的设计原则等待着你去挖掘。
你可以点击每一个原则进行具体了解。
- 设计模式的设计原则
- 设计模式的设计原则
- 设计模式的设计原则
- 设计模式的设计原则
- 设计模式的设计原则
- 设计模式的原则
- 设计模式的原则
- 设计模式的原则
- 设计模式的原则
- 设计模式的原则
- 设计模式的原则
- 设计模式的原则
- 设计模式的原则
- 设计模式的原则
- 设计模式的原则
- 设计模式的原则
- 设计模式的原则
- 设计模式的原则
- 联想和想象的区别
- 18-io_ctags配置
- Json_Jackson_ lesson3 Jackson转换配置
- 19-io_文件权限掩码_动态库_静态库
- 空闲时间学一个Linux命令(18)—— locate 命令
- 设计模式的设计原则
- 20-进程_pstree_kill_fork_execl_waitpid_练习
- Python的几种实现
- MySql模糊查询like通配符与使用正则查询详细介绍
- 1-ARM处理器_大小端
- Codeforces Round #392 (Div. 2)Unfair Poll
- 2-ARM_流水线_汇编
- PHP 使用soap
- P1373 小a和uim之大逃离