设计模式之前言
Posted 剑行歌之
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之前言相关的知识,希望对你有一定的参考价值。
序言
在IT圈子的朋友应该有这样的体会:构建一个优秀的系统最困难之处不在于编码(coding),而是在早期做出的设计(design)上的决定。设计是软件开发生命周期中的关键阶段,好的设计能产生好的产品,而不当的设计则会影响最终产品的质量。一个软件设计的优劣,往往越到后期拓展越能体现出差异。
再说一个我周边一个比较普遍的现象:
开发人员在入行初期,拿到需求之后,大刀阔斧直接开始上手coding,然后就被反反复复的产品大大折磨的不要不要的。
开发人员在入行中期,有了开始被产品大大折磨的阴影,大家在拿到需求之后都学聪明了,开始下意识的从产品的角度出发,思考软件在不同的业务场景下怎么样才能“偷懒”少改点代码。
开发人员入行久了之后,对“偷懒”这个词都有了自己的见解,会主动的去思考设计是什么?怎么才能设计一个更优的软件?怎么才能让自己“少动手”?
上面就是我们主观或者下意识的对设计模式进行运用。那么我们来一起详细的研究下设计模式到底是什么,它是如何帮我们“偷懒”的。
软件设计模式的概念
软件设计模式(Software Design Pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它描述了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。也就是说,它是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。其目的是为了提高代码的可重用性、代码的可读性和代码的可靠性。
设计模式的作用及意义
设计模式的本质是面向对象设计原则的实际运用,是对对象的封装性、继承性和多态性,以及类之间的关联和组合关系的高度抽象。正确使用设计模式具有以下优点:
1)重用设计和代码,重用设计比重用代码更有意义,设计的重用自动带来代码重用
2)提高扩展性,大量使用面向接口编程,预留扩展插槽,新的功能或特性很容易加入到系统中来
3)提高灵活性,通过组合提高灵活性,可允许代码修改平稳发生,对一处修改不会波及到其他模块
4) 提高开发效率 ,正确使用设计模式,可以节省大量的时间
设计模式的要素
软件设计模式使人们可以更加简单方便地复用成功的设计和体系结构,它通常包含以下要素:模式名称、别名、动机、问题、解决方案、效果、结构、模式角色、合作关系、实现方法、适用性、已知应用、例程、模式扩展和相关模式等。可以看到,加起来林林总总十几个,为了便于理解与学习,我总结出4大要素,简称4W要素:
1.who:
指软件的用户群体,设计时定位软件服务用户群体,从服务用户群体的角度进行设计。
2.when
指使用软件的用户的使用习惯,会在什么时候使用,依此进行软件设计。例如:考勤软件在上下班时是使用高峰,剩余时间则几乎无人使用,软件根据高低峰对资源进行动态分配设计。
3.where
指软件的使用场景,思考用户会在哪些应用场景需要用到本软件,根据丰富的使用场景进行抽象设计
4.what
指软件的用途,设计要了解用户用软件都是用来做什么,依据现实进行设计,毕竟脱离现实的设计都是耍流氓。
总结起来就是一句话:什么人在什么时间什么地点用来做什么
设计模式的大纲就介绍到着,下一篇文章我们继续聊一聊设计模式的七大原则
以上是关于设计模式之前言的主要内容,如果未能解决你的问题,请参考以下文章