软件设计原则

开闭原则

主要是说对修改封闭,对拓展敞开,此原则应该是软件设计的目的,那么实现此原则,主要通过抽象来达到这个目的

接口隔离原理

主张接口的粒度应该尽可能的小,如果接口的粒度太大了,导致很多类在实现其接口,也不得不实现其不需要的函数(方法)。

里氏替换原则

一句话,就是说,凡是父类出现的地方,都可以用子类来替换,这里并不是说要父类用子类来替换,而是传达一个原则,那就是,子类不应该覆盖,重写父类的方法,从而导致父类,子类方法的语义有差别。就是要重写,也只能在父类方法语义范围内重写,比如,父类某方法要求参数的范围0-10,那么子类重写此方法时,也只可能在0-10范围内,或更苛刻而不是相反。

组合/聚合原则

此原则主张优先利用组合/聚合来复用功能,而不是继承。至于组合与聚合的差别,都可以通过实例变量来做到,其他的区别就是组合是一个部分与整体的关系,整体管理着部分的生命周期,部分不能独立整体而存在,比如人与手,公司与部门;而聚合则不是,它们是一种合作的关系,部分可以独立于整体而存在,比如汽车与轮胎。而优先使用组合/聚合的原因,主要还是继承对于程序有更大的侵入性,比如,继承的父类发生了变化,那么势必影响所有的子类。组合/聚合则可以将这种变化限于某一个类中。

迪米特原则

其实就是一个原则:低耦合,高内聚。那么如何做到呢,一个类应该这样做,如果可能,把类修改成final的,如果类不是final,那也应该尽量降低此类,此类中的成员变量,成员函数(方法)的访问权限,此外还需要慎用序列化(Serialble)

依赖倒置原则

高层模块依赖底层模块,实现依赖与抽象而不是相反。spring以及其他IOC容器的朋友,我想对此原则应该不陌生。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值