码迷,mamicode.com
首页 > 其他好文 > 详细

设计原则

时间:2016-05-16 11:02:48      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

1.开闭原则OCP(Open-Close Principle)

【开指的是对扩展开发,关指的对修改关闭。】

  我把它理解为“一国两制”原则。一国两制怎么说:香港澳门继承了中国这个类,表示说:一个中国不可改变,但针对与港澳实际情况,他们实行的是资本主义经济。

 

2.单一职责原则RRP(Single Responsibility Principle)

【一个类应该只有一个发生变化的原因。】

  高内聚低耦合这就是我们写程序的目标,但是很多时候高耦合会在不经意间就产生了,这大多是因为职责扩散造成的。这个原则最好理解,又最容易违背这个原则。原因就是职责这个家伙不好确认。

3.依赖倒转原则DIP(Dependency Inversion Principle)

【抽象不应当依赖于细节,细节应当依赖于抽象;高层实现不依赖底层实现。】

  想想让你封装一个类的时候你首先会做什么。会先封装接口,再写实现。{#总工说这样处理才是合理的。原因就在这#}。面向接口编程而非实现。这个原则在我看来也是面向对象设计的标志。

举个例子:usb是不是所有的的电脑都能通过usb接口连接。如果联想的usb接口和苹果的usb接口不一样,那么你买了一个200多的USB键盘,结果是不是就不能公用了。

4.里氏代换原则Liskov Subsitution Principle(LSP)

【子类可以扩展父类的功能,但不能改变父类原有的功能】

  里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。

有这么一句话:里氏代换原则是继承复用的一个基础。

检验你是否遵循了里氏代换原则的方法:如果调用的是父类的话,那么换成子类也完全可以运行。

动物 dongwu=new 猫();其中【把猫换成狗】也是正常的就说明你是遵循这个原则的。

{注:我在网上看过一个“企鹅是鸟不会飞”的例子,这也是自己犯这个错误的原因。这例子在这不说了,你可以试着去找一下去。}

5.接口隔离原则Interface Segregation Principle(ISP)

  从字面上来讲就是一个不要把接口写的太臃肿。查资料大致说的就是有两种分离方式一种是“定制服务”和“角色隔离”。

在工作当中有没有这样的问题存在:同一个模块,因为没有安排得当两个人都去开发,最后一定是有个人白做了。所以有时候,项目管理软件就显的那么的有必要。

定制服务:大致来讲就是我针对一个客户端,我的一些方法放到一个接口里,另一个客户端我的一个类放在另一个接口里面。

角色隔离:是指一个客户端有多个方法,多个方法写多个接口。

【友情提醒:接口也不要分的太细,要不然结果就是接口太多。】

6.迪米特原则Law of Demeter 又称Least Knowledge Principle(LKP)最少知识原则

【我的理解就是:这个原则不希望类与类之间不要建立直接联系。】简单来说就是不和陌生人说话。类与类之间一定会存在互相调用的?网上查了一下,说可以用友元类来转达。

  就是降低类本身和成员的访问权限,达到【低耦合,高内聚】。

【和ISP接口隔离原则一样,限制类与类之间的通信。ISP限制的是宽度,而LoD迪米特原则限制的是通信的广度和深度。】。

  外观模式(Facade Pattern)和中介者模式(Mediator Pattern)就使用了迪米特法则。

设计原则

标签:

原文地址:http://www.cnblogs.com/kmonkeywyl/p/5497180.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!