软件的设计原则 - 设计模式学习笔记

当前软件开发的软件生命周期存在着非常严重得需求变化问题,从产品还没有开发完成就开始进入产品的修改阶段,一直都没有停止,我在我们公司经历了多个产品的周期,一个经常使用的系统都存在这个问题,其实看来呢,这成为软件的一个趋势,客户需求经常发生着变化,追究原因,存在二种问题,一个是对行业研究不透澈,无法摸透用户行为,另外一种就是客户需求变化频繁,客户不定性决定了他们需求的反复变化,变化已经成为软件的趋势,从软件设计开始就需要考虑到软件的变化,考虑软件的正确的变化方向。
针对当前的现状,需要我们的软件系统存在可扩展性,灵活性,可插入的性质,开应对客户的需求变化。也就是提高软件的可维护性和软件的可复用性。
由此我们需要仔细考虑我们的设计,可以遵照一定的设计模式:
1、开闭原则OCP
2、里氏替换原则LSP
3、依赖倒置原则DIP
4、接口隔离原则ISP
5、组合/聚合复用原则CARP
6、迪米特原则LOD

通过遵照如下原则来提高程序的可扩展性和可复用性。
一、开闭原则,表示对于扩展开发,对于修改关闭,可以在不修改源代码的情况下修改这个模式的行为,需要做如下工作:抽象化是关键,对可变进行封装
二、LSP:一个软件采用基类的话,就可以替换成子类运行,而且察觉不到差别,java本身支持此原则。
三、DIP:要依赖于抽象,不要依赖于具体的实现
四、ISP:使用多个专门的接口比使用一个接口好
五、CARP:要尽量使用合成/聚合,尽量不要使用继承,继承存在如下特点:
优点:容易扩展,修改容易
缺点:继承破坏了封装
超类发生变化,子类也要发生变化,和引起连锁反应
从超类继承来的是静态的,影响灵活性
六、一个对象尽可能少的了解其他对象
设计的原则还有很多,只是列举几个主要原则,在以后的设计中需要注意,后面会针对设计模式进行分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值