设计模式(一)--------七大软件设计原则

本文详细介绍七大设计模式,包括开闭原则、依赖倒置原则、单一职责原则、接口隔离原则、迪米特原则、里氏替换原则及合成复用原则。探讨各原则的定义、优点及其在软件开发中的应用。

从今天开始系统的看下spring里面的一些源码了,这个之前先来了解一下主要的设计模式,为系统学习spring源码打下基础。现在出发~~

1.开闭原则:

      一个软件实体如类,方法和函数应该对其扩展开发,对其修改关闭。用抽象构建框架,用实现扩展细节。

        优点:提高软件系统的可重用性可维护性。

2.依赖倒置原则:

         指在代码接口中,高层模块不能依赖底层模块,二者应该依赖其抽象。抽象不依赖细节,细节应该依赖细节。

         优点:减少类和类之间的耦合性,提高系统的稳定性,并降低系统修改所带来的风险。

3.单一职责原则:

             每个类只处理自己相关的逻辑,如果修改一处逻辑引发另一处的逻辑也需要修改这种做法是错误的,违背了单一职责原则。

     优点:将两个业务逻辑用连个类来实现,进行解耦操作。后期需求变更维护互不影响。降低复杂度,提高类的可读性,提高系统的可维护性。总的来说就是一个类、接口或方法只负责一项职责。

4.接口隔离原则

         指用多个专门的接口,而不是使用单一的总接口,其实现不应该实现他不需要的接口。这个原则知道指导我们注意以下几点:

(1)一个类对另一个的依赖应该建立在最先小接口之上;

(2)建立单一接口,不要建立庞大臃肿的接口;

(3)尽量将接口细化,接口的方法减少(但不是越少越好,一定要适度)

5.迪米特原则

           一个对象应该对其他对象保持最少了解,尽量减少类与类之间的耦合。

6.里氏替换原则

          如果对每一个类型为T1的对象o1,都有类型为T2的对象o2,使得T1定义的所有程序中将o1替换成o2时,程序P的行为没有发生变化,那么T2是类型T1的子类型。

(有点像java中继承的特性!!!)

引申含义为:子类可以扩展父类的功能,但不能改变父类原有的功能。

        (1)子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。

      (2)子类可以增加自己特有的方法。

      (3)当子类的方法重载父类的方法时,方法的前置条件(既方法的输入\入参)要比父类方法的输入参数更宽松。

      (4)当子类的方法实现父类的方法时(重写/重载或者抽象方法的实现),方法的后置条件(即方法的返回或出参)要比父类的更加严格或者一样。

优点:

     (1)约束继承的泛滥,是开闭原则的一种体现

     (2)加强程序的健壮性,同时变更时也可以做到非常好的兼容性。

7.合成复用原则

           尽量使用组合或者聚合的方式实现业务逻辑,不要使用继承关系达到软件复用的目的。可以使系统更加灵活,降低类与类之间的耦合度。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值