看过好多设计模式,但是工作中用到面向过程的语言,设计模式就很少用到了,目前换了工作,设计模式又得重新捡起来了。
1.软件越来越腐烂的原因有以下4点:僵硬,脆弱,复用率低,耦合度高。
僵硬:这个的意思就很难修改,无从下手,比如好多时候我们需要维护一个运行了好多年的软件,需要添加新功能,你就很不情愿,因为不好改啊,只能和客户沟通,想办法解决,因为你怕改出问题来;
脆弱:脆弱是什么意思呢?就是你改了之后,出现问题了,一改就出问题,不是脆弱是什么,怕的是你在改的时候考虑到了一些问题,就怕没考虑全,然后这问题找不到,又得回退等等。
复用性低:好多人都知道这个词,其实只是模棱连可的理解表层意思,举个例子来讲,做个一改显示list的c#客户端节目,需要从数据库提取数据显示出来,刚开始看到这个方法里面和界面上的table紧耦合了,所以好多时候我们不得不重新复制粘贴,提取出来一个新的方法,这就是复用性低,为什么不弄成通用的,自己在上层封装再用?因此软件内的东西会越来越冗余,臃肿。
耦合度高:好多人都耦合度高的理解是没有分模块啊,分层啊,其实不尽然,简单来讲,不是那回事,你要想,这回导致什么问题!!!正常的讲,拿数据库连接来举例,我们会在底层封装好多东西,然后在上层使用,有时候分层没有做好,那么好多人就会跳过分层,是跳过,直接使用下层的方法,因为这样方便啊。会节省时间。用句科学术语就是:如果使用一个权宜之计会比一个对未来发展有利的方法更快速的开发的话,那么就说明耦合度过高了。
2.好的系统的性质:对应以上的1,2,4点:可扩张性,灵活性,可插入性。
3.复用模式:
a)传统复用模式;复制粘贴;算法复用,很少有人写排序算法了;数据结构的复用,比如list等等。
4..复用性高的好处:降低成本:复用的模块越多,你就越不需要开发这个模块,可以去做别的事情了,老版就会省劳动力,多报价,等等了。
设计原则的目的是什么?是为了提高复用性和可维护性。这两点做好了,就非常好!后面开始介绍设计原则以及设计模式!
--------------------------持续更新,公司的输入法跟我不对口,因此有错字,欢迎大家指正,谢谢!