什么是好的设计,难道使用设计模式就是好的设计么

1.什么是好的设计模式?

答:

好的设计模式首先需要遵循六大原则,即单一职责原则、里氏替换原则、依

赖倒置原则、接口隔离原则、迪米特法则、开闭原则。并且好的设计模式需要经历时间的验证,可以适用于大多数的问题,可复用性高的设计模式相对较好。

2.难道不使用设计模式就是坏的设计么?

答:

不使用设计模式也有可能设计出好的作品。首先程序设计好坏的标准主要有:①可维护性,是指程序各部分相互独立,没有调子程序以外的其他数据关联,即不会发生在维护时牵一发而动全身的连锁反应;②可靠性,是衡量系统质量的首要指标;③可读性,即程序清晰,逻辑正确,计算机能够执行,层次清楚,便于阅读;④规范性,是指系统的划分、书写的格式、变量的命名等都要按统一规范,便于程序以后的阅读、修改和维护;⑤实用性,是指从用户的角度来审查系统各部分是否都非常方便实用;⑥高效率,主要是指系统运行速度与存储空间指标。运用设计模式可能会增加设计的分数,锦上添花,但是也并不是必须要的。设计模式是采用面向对象的方法,而C语言设计的东西也有精品,而C语言没有面向对象编程,所以不使用设计模式不一定是坏的设计。

 

3.为什么需求的变化总是你痛苦?和你的设计有关系么?

答:

    程序设计完成之后,大体的服务方向也就相对固定,只需要进行维护之类即可,但是一旦需求产生变化,可能自己先前的设计就并不能满足需求,而如果需求差距还很大,那么极其有可能需要重新进行设计,产生了新的劳动,所以可能有些痛苦。和设计关系密切,直接原因就是设计无法满足需求。

 

4.好的系统设计应该有如下性质:可扩展性、灵活性、可插入性?

答:

    软件的维护就是软件的再生。一个好的软件设计,必须能够允许新的设计要求以较为容易和平稳的方式加入到已有的系统中。但实际上,现有大多数软件系统不具备这样的特性。导致一个软件的可维护性较低的原因有四个:

        1.过于僵硬(Rigidity):很难在系统中加入新功能。因为会波及其它模块,最后会变成跨越几个模块的大改动。

        2.过于脆弱(Fragility):与过于僵硬同时存在。对一个地方的修改,往往导致看上去没有什么关系的另一个地方发生故障。修改完成前,系统的原始设计师甚至无法预测可能会波及到地方。

        3.复用率低(Immobility):当发现有一段代码、函数、模块可用于新功能时,这些已有的代码总是依赖一大堆其它的东西,很难将它们分开。

        4.黏度过高(Viscosity):对系统的改动可以采取保存原始设计意图和设计框架的方式,也可以以破坏原始意图和框架的方式进行。前者对系统未来有利,而后者是权宜之计,可以解决短期问题,但会牺牲中长期利益。如果一个系统设计,总是使得第二种办法比第一种容易,就叫黏度过高。

一个好的系统设计应该有如下的性质:

        1.可扩展性(Extensibility):新的性能可以很容易地加入到系统中去。这是”过于僵硬“的相反面。

        2.灵活性(Flexibility):允许代码修改平稳的发生,而不会波及到其它模块。这是”过于脆弱“的相反面。

        3.可插入性(Pluggability):可以很容易将一个类抽出去,同时将另一个有同样接口的类加进来。这是”黏度过高“的相反面。

 

 

5.设计模式可以使你的设计更灵活,更易复用,更具可扩展性?

答:

    设计模式可以让设计更灵活,可以选择不同的设计模式来让软件方便的实现,而且还可能使得设计更稳定可靠。使用设计模式的好处之一便是可复用性,可以针对不同但是相近的一类问题快速的进行设计解答,节约时间成本。设计模式设计要遵循开闭原则,一个功能的插入和删除并不会影响其他功能的执行,所以扩展性更高,可以添加新的功能进去。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值