zoukankan      html  css  js  c++  java
  • 面向对象设计的六大原则

    1、单一职责原则

    一个类只负责一个功能领域中的相应职责,如果承担的职责太多,那么这个类被复用的可能性就越小。或者可以说:就一个类而言,只有一个原因才能导致它被修改。

    2、开闭原则

    一个实体软件应该对扩展开放,对修改关闭。简单来说既是,尽量在不修改原有代码的前提下扩展新的功能。为了满足开闭原则,需要对系统进行抽象化设计,抽象化是开闭原则的关键。将功能类似的类抽象出一个抽象类或者接口,后续扩展性的功能时只需在新增一个实现类即可

    3、里氏代换原则

    所有使用父类的地方都可以子类进行替换。里氏代换原则是实现开闭原则的重要方式之一,由于使用基类对象的地方都可以使用子类对象,因此在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象

    4、依赖倒置原则

    面向接口编程。开闭原则是目标,里氏代换原则是基础,依赖倒转原则是手段,它们相辅相成,相互补充,目标一致,只是分析问题时所站角度不同而已。

    5、迪米特法则

    最少知识原则。一个类应该尽可能少的和其他类进行交互,这样做可以降低系统的耦合度,一个对象的改变不会给太多其他对象带来影响。如果两个对象之间不必彼此直接通信,那么这两个对象就不应当发生任何直接的相互作用,如果其中的一个对象需要调用另一个对象的某一个方法的话,可以通过第三者转发这个调用。简言之,就是通过引入一个合理的第三者来降低现有对象之间的耦合度。

    6、接口隔离原则

    使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。我的理解是需要遵循单一职责原则,一个接口设计的不该过大,否则实现类需要重写它很多不需要、用不上的空方法,影响代码质量。另一方面,接口暴露了很多给其他实现类设计的功能(方法)

  • 相关阅读:
    为什么世界上没有安全的工作?
    GIT学习----第六节:撤销修改
    vue-cli中koa输出console.log报错的解决方案
    简易版promise源码实现
    bind函数的模拟实现
    Es6语法实现的转盘抽奖效果——可配置转盘的抽奖概率
    探寻Object.assign内部的奥秘
    promise基本使用——简单的运动效果
    数组sort方法源码解析
    ES5数组一些常用的方法源码实现
  • 原文地址:https://www.cnblogs.com/AyasatoMayoi/p/10937521.html
Copyright © 2011-2022 走看看