A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© l_15562009298 中级黑马   /  2015-8-23 08:38  /  286 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

谁知道面向对象的几大原则?解释一下

1 个回复

倒序浏览

面向对象设计的原则

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和单一职责原则、接口隔离原则密切相关。

接口隔离原则

接口隔离原则指,如果不需要一个接口的功能,那么就不要实现此接口。

编程以接口(而非实现对象)为中心

编程总是以接口(而非实现对象)为中心,这会使代码的结构灵活,而且任何一个新的接口实现对象都能兼容现有代码结构。

代理原则

不要期望一个类完成所有的功能,可以适当地把一些功能交给代理类实现。

总结

以上所有面向对象的设计原则可以帮助您写出灵活、优雅的代码:具有高内聚低耦合的代码结构。

理论只是第一步,更重要的是我们要习得一种能力去发现什么时候使用这些设计原则。

去发现我们是否违反了什么设计原则和影响了代码的灵活性,但是世界上没有什么是完美的,

我们解决问题时不能总去使用设计模式和设计原则,它们大多用于有较长维护周期的大型企业项目。


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马