标签:原则 基类 接口 开闭 面向对象 Principle 派生类 设计
开闭原则(The Open-Closed Principle ,OCP)
软件实体(模块,类,方法等)应该对扩展开放,对修改关闭。
系统设计需要遵循开闭原则的原因
- 稳定性。开闭原则要求扩展功能不修改原来的代码,这可以让软件系统在变化中保持稳定。
- 扩展性。开闭原则要求对扩展开放,通过扩展提供新的或改变原有的功能,让软件系统具有灵活的可扩展性。
遵循开闭原则的系统设计,可以让软件系统可复用,并且易于维护。
里氏替换原则(Liskov Substitution Principle ,LSP)
所有引用基类的地方必须能透明地使用其派生类的对象。
只有满足以下2个条件的OO设计才可被认为是满足了LSP原则:
-
不应该在代码中出现if/else之类对派生类类型进行判断的条件。
-
派生类应当可以替换基类并出现在基类能够出现的任何地方,或者说如果我们把代码中使用基类的地方用它的派生类所代替,代码还能正常工作。
里式替换原则的引申意义:子类可以扩展父类的功能,但不能改变父类原有的功能。
迪米特原则(最少知道原则)(Law of Demeter ,LoD)
迪米特原则(Law of Demeter)又叫最少知道原则(Least Knowledge Principle),可以简单说成:talk only to your immediate friends,只与你直接的朋友们通信,不要跟“陌生人”说话。
单一职责原则
永远不要让一个类存在多个改变的理由。
换句话说,如果一个类需要改变,改变它的理由永远只有一个。如果存在多个改变它的理由,就需要重新设计该类。
单一职责原则原则的核心含意是:只能让一个类/接口/方法有且仅有一个职责。
接口分隔原则(Interface Segregation Principle ,ISP)
不能强迫用户去依赖那些他们不使用的接口。
依赖倒置原则(Dependency Inversion Principle ,DIP)
A. 高层模块不应该依赖于低层模块,二者都应该依赖于抽象
B. 抽象不应该依赖于细节,细节应该依赖于抽象 C.针对接口编程,不要针对实现编程。
组合/聚合复用原则(Composite/Aggregate Reuse Principle ,CARP)
尽量使用组合/聚合,不要使用类继承。
标签:原则,基类,接口,开闭,面向对象,Principle,派生类,设计 来源: https://www.cnblogs.com/diandianzai/p/16659047.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。