设计模式 --- 六大设计原则

六大原则:单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则、开闭原则

1.单一职责原则

单一原则,官方说法:there should never be more than one reason for a class to change,即有且仅有一个原因引起类的变更。

企业就是每个类所做的事情应该统一,比如实体类只写相关属性,dao类只写数据库相关操作,service类写业务逻辑,controller类接收request请求并返回相应页面。

单一职责的好处:①:类的复杂性降低  ②:可读性提高 ③:可维护性提高  ④:需求变更引起的风险降低,一个接口修改只会对相应的实现类有影响,对其他接口不会产生影响,这对系统的扩展性和可维护性有非常大的帮助

无论是接口、类或者方法都应该使用单一职责原则,这将使我们减少因变更引起的工作量。 

2.里氏替换原则

里氏替换的目的就是增强程序的健壮性,版本升级时也可以保持很好的兼容性。即使增加子类,原由的子类也可以继续运行。实际项目的当中,每个子类对应不同的业务,使用父类作为参数,传递不同的子类完成不同的业务逻辑。

里氏替换是为继承梳理了一个良好的规范,它需要遵循以下规则:

        1) 子类必须完全实现父类的方法

        2)  子类可以有自己的个性,即拥只属于自己的属性和方法

        3)  覆盖或实现父类的方法时,参数可以被放大

        4)  覆盖或实现父类的方法时,返回值可以被缩小

3.依赖倒置原则

依赖倒置原则含义:高层模块不应该依赖于底层模块,两者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象

依赖倒置在java中的体现:模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的;  接口或抽象类不依赖于实现类;  实现类依赖于接口或抽象类。

依赖倒置其实就是面向接口编程。通过抽象(抽象类或接口)是各个类或模块的实现彼此独立,不相互影响,实现模块间的松耦合。

实现依赖倒置应遵循的规则?

        1)每个类尽量都有接口或抽象类,或者两者都具备(有了抽象才可能依赖倒置)

        2)变量的表面类型尽量是接口或抽象类

        3)任何类都不应该从具体类派生(即继承的类应该是接口或抽象类)

        4)尽量不要复写基类的方法(即不要重写父类的普通方法)

        5)结合里氏替换原则

4.接口隔离原则

接口隔离即对接口进行约束

        1)接口尽量小(即接口职责尽量细化)

        2)接口要高内聚(提高接口、类、模块的处理能力,减少对外界的交互)

        3)接口设计是有限度的(理论越小越好,但是小也带来了接口的复杂化)

5.迪米特法则

又称最少知识原则,即一个对象应该对其他对象有最少的了解,也就是一个类对自己需要耦合的类知道的越少越好。

迪米特的核心观念是类间解耦,弱耦合,只有这样才能提高类的复用率。但是类之间的调用不能超过两级,级数越多系统越复杂,维护越困难。

6.开闭原则

开闭原则定义:Software entities like classes,modules and functions should be open for extension but closed for modifications(一个软件实体如类、模块和方法应该对扩展开放,对修改关闭)

软件实体:1)项目或软件产品中按一定逻辑规则划分的模块  2)抽象和类  3)方法

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值