面向对象原则理解

  1. 单一职责原则
    1. 类层面:一个类只负责一个职责,这是为了避免如果一个类负责多个职责,对其中一个职责的相关代码进行改动,其他职责的代码可能会受到影响。所以,理解类的单一职责原则就是如果对这个类进行改动,那么这个类都会收到影响,这种影响是正常的,无可厚非的。
    2. 方法层面:参数对于方法体是纯粹的,不需要额外对方法进行分范围分别处理。
  2. 接口隔离原则
    1. 场景:类X有一个成员变量A,类Y有一个成员变量A,但是X只需要用到A里的a,b,c方法, Y只需要用到A里的a,d,e方法
    2. 做法:应该让A分别实现两个接口D,E这两个接口分别用b,c和d,e方法。 G有a方法,E和F继承G, 然后把类X持有A改成持有D,Y改为持有E
    3. 原因:这样子X中就没有办法通过D.d 调用到它不需要的方法,Y也是,从而降低了X,Y和A之间的耦合度
    4. 好处:如果A只实现了一个接口,没有进行拆分,那么以后继承这个接口的其他类也需要实现所有方法,不管它的客户端需不需要
    5. X只知道D, Y只知道E,可以让服务端(也就是A和实现的各个接口)尽量减少与外界的耦合度,知道得越少,以后改起来得越容易
  3. 依赖倒转原则
    1. 高层对底层得依赖应该是依赖其接口,而不是具体实现。底层代码对高层代码应该是通过接口提供,而不是具体实现。简而言之就是controller层不要直接持有service的实现类,而是持有其接口
    2. 原因:
      1. 如果以后要换实现的话,可以在注入的地方改动一处就好了,而不用到处改
      2. 如果实现类的访问权限改动的话,只要和接口的关系没有改动,那么引用这个接口的地方就不用改,否则又得到处改
  4. 里氏替换原则
    1. 尽量不要重写父类中的方法,使用的地方人家可能见过父类,但是没有见过你这个新写的子类,对于同一个方法,很有可能人家就会当作父类那样子去用,如果新的类方法实现改了,既有可能导致人家用错了
    2. 如果人家的方法你都不想要,那么还实现它干啥呢(灵魂拷问)
  5. 开闭原则
    1. 如果你的代码是给别人用的,那么最好你代码扩展(也即是改动)对别人来说是没有影响的,最好是人家原来怎么用,你改了之后人家还是可以那样子用
    2. 开:对服务端改动是开放的  闭:对客户端改动是关闭的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值