设计模式----面向对象的六大原则

前言:前段没有时间,趁现在把设计模式的东西整理一下。内容大部分是《Android源码设计模式解析和实战》


设计模式一般需要遵循“面向对象的六大原则

1.1 优化代码的第一步——单一职责原则 
1.2 让程序更稳定、更灵活——开闭原则 
1.3 构建扩展性更好的系统——里氏替换原则 
1.4 让项目拥有变化的能力——依赖倒置原则 
1.5 系统有更高的灵活性——接口隔离原则 
1.6 更好的可扩展性——迪米特原则 

----------------------------------------------------------

1.单一职责原则:

对于一个类,应该仅有一个引起它变化的原因。

单一职责原则的划分界限不是很清晰,需要每个人自己靠个人经验去界定。但是还是有一定的基本原则的:比如,2个完全不同的功能不应该放在一个类里面。一个类应该是一组相关性很高的函数、数据的封装。

2.开闭原则:

软件中的对象(类、模块、函数等)应该对于扩展是开放的,但是对于修改是封闭的。

除了错误应该修改源码,扩展应该通过新建不同的类来实现。
但是在实际的开发中,一般是修改原来的代码和扩展同时进行。

按我的理解,这里的意思应该是扩展的时候,如果可能,尽量用接口去扩展功能。


3.里氏替换原则:

LSP:所有引用基类的地方必须能透明地实用其子类的对象。

通俗的说:只要父类能出现的地方子类就可以出现,而且替换为子类也不会产生任何错误或异常,使用者可能根本不需要知道是父类还是子类。,但是,反之就不行。

里氏替换原则,其实可以想想Android里面的View和TextView、Button等之间的关系。

里氏替换原则和开闭原则不弃不离,一起使用,他们的核心思想就是------抽象。
在代码中使用抽象是代码优化的第一步。

4.依赖倒置原则:

DIP:依赖倒置原则:使得高层次的模块不依赖于低层次的模块的具体实现细节的目的。
大致可以理解为:
1.高层次的模块不依赖低层次模块,两者都应该依赖其抽象。
2.抽象不应该依赖于细节。
3.细节应该依赖于抽象。
面向接口编程是面向对象编程的精髓之一

5.接口隔离原则:

ISP:接口隔离原则
客户端不应该依赖它不需要的接口。

其实就是:让客户端依赖的接口尽可能地小。

6.迪米特原则:

LOD:迪米特原理:(最少知识原则)一个对象应该对其他对象有最少的了解。

通俗的讲:一个类应该对自己需要耦合或者调用的类知道得最少,类的内部如何实现与调用者或者依赖者没有关系,调用者或者依赖者只需知道它需要的方法即可。
LOD还有另一种说法: 只与直接的朋友通信

当一个类对自己需要调用或者耦合的类知道的最少的时候,别调用或者耦合的类内部修改了,那么调用者也不会知道。这样就使系统很好的实现了低耦合性和高扩展性。


PS:欢迎转载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值