java 设计模式 6大原则

里氏置换原则   (不要破坏继承关系)
所有引用基类的地方必须能够透明的使用其子类对象。也就是说,只要父类出现的地方子类就能够出现,而且替换为子类不会产生任何错误或异常。
但是反过来,子类出现的地方,替换为父类就可能出现问题了。
1、子类必须完全实现父类的方法。例如,A类方法入参为父类,具体实现时候入参可为子类。
2、子类可以自己的特性。也就是说在类的子类上,可以定义其他的方法或属性。
3、重载或者实现父类的方法时输入参数可以被放大。例如,父类method(Hashmap map),子类重载父类的方法method(Map map)
这样在在调用father.method(Hashmap)的地方都可以替换成sun.method(Map)
4、覆写或者实现父类的方法时输出结果可以被缩小。例如,父类method返回Map,子类的method可以放回Map的派生类,如HashMap

依赖倒置原则    (面向接口编程)
通过抽象(抽象类或接口使各个类或模块的实现彼此独立,不相互影响,实现模块间的松耦合。简单来说,面向接口编程。
依赖倒置种方式来实现
1、通过构造函数传递依赖对象
比如在构造函数中的需要传递的参数是抽象类或接口的方式实现。
2、通过setter方法传递依赖对象
即在我们设置的setXXX方法中的参数为抽象类或接口,来实现传递依赖对象
3、接口声明实现依赖对象,方法的入参为接口,而非具体实现类。


接口隔离原则  (设计接口的时候要精简单一)
接口隔离原则要求的是在一个模块应该只依赖它需要的接口,以保证接口的小纯洁。而且需要保证接口应该尽量小,即设计接口的时候应该让接口尽量细化,不要定义太臃肿的接口(比如接口中有很多不相干的逻辑的方法声明)。
接口隔离原则与单一职责原则有些相似,不过不同在于:单一职责原则要求的是类和接口职责单一,注重的是职责,是业务逻辑上的划分。而接口隔离原则要求的是接口的方法尽量少,尽量有用(针对一个模块)

单一职责原则   (类的职责要单一)
开发中遇到的问题用户的属性和用户的行为被放在一个接口中声明。这就造成了业务对象和业务逻辑被放在了一起,这样就造成了这个接口有两种职责,接口职责不明确,解决就是将这个接口分解成两个职责不同的接口即可。
单一职责原则的意义何在呢?
降低类的复杂性,实现什么样的职责都清晰的定义
提高可读性
提高可维护性
降低变更引起的风险,对系统扩展性和维护性很帮助
但是、使用单一职责原则有一个问题,“职责”没有一个明确的划分标准,如果把职责划分的太细的话会导致接口和实现类的数量剧增,反而提高了复杂度,降低了代码的可维护性。所以使用这个职责的时候还要具体情况具体分析。建议就是接口一定要采用单一职责原则,实现类的设计上尽可能做到单一职责原则,最好是一个原因引起一个类的变化。

迪米特法则      (降低耦合)
迪米特法则的核心观念就是类间解耦,弱耦合,只弱耦合了以后,类的复用性才可以提高。

开闭原则     (对扩展开放,对修改关闭)
定义:一个软件实体类、模块和函数应该对扩展开放,对修改开闭。
就是我们改变一个软件时(比如扩展其他功能),应该通过扩展的方式来达到软件的改变,而不应该修改原有代码来实现变化。例如,有一个接口,如果我们对其进行添加类容,则其他用到该接口的类都可能会受到影响,开闭原则建议新增一个接口继承原有接口,添加新功能。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值