面向对象设计的原则
DRY – Don’t repeat yourself
DRY ,从名称可以看出DRY(don’t repeat yourself)意思是不写重复代码,而是抽象成可复用的代码块。
如果您有两处以上相同的代码块,请考虑把它们抽象成一个单独的方法;或者您多次使用了硬编码的值,请把它们设置成公共常量。
封装经常修改的代码
在软件领域永远不变的是“变化”,所以把您认为或怀疑将来要被修改的代码封装起来。
这种面向对象设计模式的优点是:易于测试和维护恰当封装的代码。
打开/关闭设计原则
类、方法/函数应当是对扩展(新功能)开放,对修改闭合。
单一职责原则
单一职责原则是另外一个SOLID设计原则,SOLID中的字母“S”指的就是它。
按照SRP,一个类修改的原因应当有且只有一个,或者一个类应当总是实现单一功能。
依赖注入/反转原则
不要问框架的依赖注入功能将会给你带来什么益处,依赖注入功能在spring框架里已经很好的得到了实现,
这一设计原则的优雅之处在于:DI框架注入的任何一个类都易于用模拟对象进行测试,并且更易于维护,
因为创建对象的代码在框架里是集中的而且和客户端代码是隔离的。
优先使用组合而非继承
Favor Composition over Inheritance
如果可以的话,要优先使用组合而非继承。
里氏替换原则
Liskov Substitution Principle LSP
根据里氏替换原则,父类出现的地方可以用子类来替换,例如父类的方法或函数被子类对象替换应该没有任何问题。
LSP和单一职责原则、接口隔离原则密切相关。
接口隔离原则
接口隔离原则指,如果不需要一个接口的功能,那么就不要实现此接口。
编程以接口(而非实现对象)为中心
编程总是以接口(而非实现对象)为中心,这会使代码的结构灵活,而且任何一个新的接口实现对象都能兼容现有代码结构。
代理原则
不要期望一个类完成所有的功能,可以适当地把一些功能交给代理类实现。
总结
以上所有面向对象的设计原则可以帮助您写出灵活、优雅的代码:具有高内聚低耦合的代码结构。
理论只是第一步,更重要的是我们要习得一种能力去发现什么时候使用这些设计原则。
去发现我们是否违反了什么设计原则和影响了代码的灵活性,但是世界上没有什么是完美的,
我们解决问题时不能总去使用设计模式和设计原则,它们大多用于有较长维护周期的大型企业项目。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |