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