要想使用好OOP(Object Oriented Programming)
那么了解这几个基本设计原则是很重要的(前辈们的经验)
在实际开发中能大大提升开发效率
单一职责原则
其实就是老生常谈的"高内聚,低耦合"
也就是每个类只有一个职责,对外只提供一种功能;
而引起该类变化原因只有一个。
所有设计模式都遵循这一原则
开放关闭原则
一个对象对扩展开放,而对修改关闭。
简单理解 :
对类的改动是通过添加代码(扩展)来实现,而非修改已有代码。
比如本来有个手机类,且只具备通话功能。
但是现在开始的手机不但能通话还能使用APP
如果在原手机类中添加一个APP方法是不合理的
会导致原有手机也能使用APP,这不科学。硬件也带不动
最好的方式是创建子类并扩展APP接口实现功能
也就是说软件开放人员一旦写出了可以运行的代码则不应该修改它
而要做到这一点就要借助于抽象和多态了,就是把可能变化的内容抽象出来
从而使抽象部分相对稳定,而具体实现则是可以改变与扩展的
里氏替换原则
核心思想 : 在父类出现的任意地方都能用子类替代
也就是说同一继承体现中的对象应该有共同的行为特征
依赖倒置原则
要依赖于抽象,而不用依赖于具体实现
也就是说,在应用程序中所有类如果使用或依赖其他类
则应该依赖其他类的抽象类,而不是这些其他类的具体类
为实现这一原则,要求我们在编程的时候针对抽象类或接口编程
而尽量避免针对具体实现编程
接口隔离原则
核心思想 : 不应该强迫程序依赖它们不需要使用的方法
也就是说,接口不需要提供太多的行为,一个接口应该尽量的只提供一种对外功能
而不应该把所有操作都封装到一个接口中
比如增删改查,如果放到一个接口中,那么实现这个接口就要实现所有这些方法
而如果放到四个接口,那么如果我只需要添加一查询功能,实现两个接口即可
而删除和修改是多余的
迪米特原则
核心思想 : 一个对象对于其他对象应该尽可能少的了解(低耦合)
也就是说降低对象直接的耦合,提高系统的可维护性与代码复用性
比如一个实现原理在两个类中出现,当需要做修改要修改两个地方
并且代码也存在重复