依赖倒置原则定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。
我觉的这个定义写的不是很好,这个定义里面有个误区就是高层模块和底层模块,假设有个class A和class B,B继承A,很多人会认为A是高层模块,B是底层模块,而这个原则和这并没什么关系,重点是在后一句,细节应该依赖抽象。看了很多资料,我觉得这个原则最主要是关于借口类的运用。提醒我们要用借口类来实现抽象,由于蛮简单的,而且网上有很多资料,就不想继续写下去了。
接口隔离原则:
接口隔离原则(Interface Segregation Principle, ISP):使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。
说起接口,第一个想法慕容置疑就是台式机里面的各式各样的接口吧,屏幕啦,鼠标啦,音响啦,键盘啦,都要通过插入一个小口,然后和主机里面各个硬件联系起来。而接口隔离原则的意思就是要各个接口有不同的作用,就像是显示器的借口只能接显示器,打印机的接口只能接打印机。虽然现在很多东西都能用USB接,比如鼠标,键盘都可以用USB来连接,可是在这里不提倡。举个例子吧
interface 接口
{
void 显示();
void 打印();
}
class 显示器 implements 接口
{
void 显示()
{显示界面;}
void 打印(){}
}
class 打印机 implements 接口
{
void 打印()
{打印文件;}
void 显示(){}
}
如果就一个接口的话,当实现的时候就要将所有的功能都实现,可是如果有能将接口分成显示器接口和打印机接口的话,显示器和打印机只要分别继承显示器接口和打印机接口就没必要实现没必要的功能了。
当然,在实际情况中也不能分的太细,适当就好了。