关于OO设计的原则

面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。(百度百科)

关于OO设计原则,网上众说纷纭,有6大设计原则,也有5大设计原则的说法。暂时先把这些概念记录下来,以便后来理解。

1.SRP(Single Responsibility Principle) 单一职责原则

我的理解为设计出来的一个模块对应其所预期的职责。进一步简化,就是设计出来的一个类,仅仅负责一个功能。

 

2.OCP(Open Close Principle) 开闭原则

 

引用一句话:Openfor extension , Close for Modification ,对修改关闭,对扩展开放,便于重用。字面意思上有点蛋疼,不修改,只扩展。实际上就是很大程度上的要求开发者需要严谨的设计风格,软件的可扩展性比较强,当然,不纯粹的为了迎合设计原则而不修改,我所理解的真正意义是一次行把正确的事情做好。

讲重点。对抽象编程,抽象稳定。

进一步描述。创建的类依赖一个抽象概念,抽象固定,也就是说修改封闭。类可以继承抽象,重写方法,修改就是开放的。

 

 

3.LSP(Liskov Substitution Principle)里氏替换原则

 

    继承下来的类具有共同的特征。

 

DBC(Design By Contract) 契约式设计:

有2个条件:

调用方法之前,确认传参的正确性,错误的参数即违反契约精神,不执行。

如果传参正确,执行的方法的结果也必须符合要求。

如果存在继承关系。子类的条件必须比父类的条件相同或者更严格。

 

 

4.DIP(Dependency InversionPrinciple)依赖倒置原则

    抽象编程,也就是依赖与接口编程,暂时这么理解吧。

 

5.ISP(Interface SegregationPrinciple)接口分离原则

    不同的接口有不同的职能,避免一个接口实现多个功能。


猜你喜欢

转载自blog.csdn.net/ma598214297/article/details/79371188