软件系统设计的核心

当然我现在所说的内容都是建立在面向对象基础之上的,也就是用面向对象的语言Java或C#设计出来的的软件系统。那么软件系统设计的核心问题是什么呢?那就是如何让系统易于维护并且复用性较好,让软件系统具有可维护性和可复用性,是我们的系统要达到的目标。

要完成上述的目标,并不是一件特别容易的事情。一个完成了上述目标的软件系统必然具备可扩展性、灵活性、可插入性这三个特质。如何才能具备这三个特质呢?当然是提高软件的可维护性和复用性了,哈哈,又绕回来了。那么如何完成软件系统的设计目标呢?那就是以设计原则和设计模式为基础来设计我们的系统。

在《Java与模式》这本书中提出了一个“支持可维护性的复用”的概念,他的定义是:“在保持甚至提高系统的可维护性的同时,实现系统的复用”。(好像是废话啊!)“支持可维护性的复用”的基础就是我们上面提到的设计原则和设计模式。

设计原则有哪些?设计原则与设计模式有什么关系?

在面向对象的设计中,有六个设计原则(这些原则也都是复用原则,当然也并非全部的设计原则。):

1、    开闭原则。

2、    里氏代换原则。

3、    依赖倒转原则。

4、    接口隔离原则。

5、    组合/聚合复用原则。

6、    迪米特法则。

如何才能做到在设计中遵循这些原则,当然是会有一些方法和方式,那么这些方法和方式就是以设计模式的面目出现的。所以设计模式你可以简单把他看成是:为遵循设计原则而制定的一些指导性的方法,说的文言一些就是遵循设计原则的解决方案。设计模式可以划分为三大类别:

1、  创建模式。

2、  结构模式。

3、  行为模式。

前面我们提到,一个达到了可维护性和可复用性目标的软件系统必然具备可扩展性、灵活性、可插入性这三个特质。如何才能保证我们的软件系统具备这三个特质呢(这次不绕了)?

1、  可扩展性可以用开闭原则、里氏代换原则、依赖倒转原则、和组合/聚合复用原则来保证。换句话说你只要遵循一些设计原则你的系统就能保证达到可扩展性。

2、  灵活性可以由开闭原则、迪米特法则、接口隔离原则来保证。

3、  可插入性可以用开闭原则、里氏代换原则、组合/聚合复用原则和依赖倒转原则来保证。

具备了上述三个特质的软件系统,我们软件设计的可维护性和可复用性目标也就达到了。

我们可以想象,一个软件系统首先是从遵循设计原则出发的,然后再运用一些设计模式来保证我们遵循了设计原则。如果我们为了设计模式而设计模式,脑子里并没有太多设计原则的概念的话,那么设计模式并不会给我的工作带来方便。

关于设计原则的概念以后再写。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值