Java设计模式之什么是设计模式

什么是设计模式?
广义讲,软件设计模式是可解决一类软件问题并能重复使用的软件设计方案。
狭义讲,设计模式是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。是在类和对象的层次描述的可重复使用的软件设计问题的解决方案。
模式体现的是程序整体的构思,所以有时候它也会出现在分析或者是概要设计阶段。
模式的核心思想是通过增加抽象层,把变化部分从那些不变部分里分离出来。


模式的基本要素
模式名称(Pattern Name)

问题(Problem):
描述应该在何时使用模式。解释了设计问题和问题存在的前因后果,可能还描述模式必须满足的先决条件。

解决方案(Solution):
描述了设计的组成成分、相互关系及各自的职责和协作方式。模式就像一个模板,可应用于多种场合,所以解决方案并不描述一个具体的设计或实现,而是提供设计问题的抽象描述和解决问题所采用的元素组合(类和对象)。

效果(consequences ):
描述模式的应用效果及使用模式应权衡的问题



如何描述设计模式
模式名和分类:模式名简介的描述了模式的本质。
意图:设计模式是做什么的?它的基本原理和意图是什么?它解决的是什么样的特定设计问题?
别名:模式的其他名称
动机:说明一个设计问题以及如何用模式中的类、对象来解决该问题的特定情景
适用性:什么情况下可以使用该设计模式?该模式可用来改进哪些不良设计?如何识别这些情况?
结构:采用对象建模技术对模式中的类进行图形描述
参与者:指设计模式中的类和(或)对象以及它们各自的职责
协作:模式的参与者如何协作以实现其职责
效果:模式如何支持其目标?使用模式的效果和所需做的权衡取舍?系统结构的哪些方面可以独立改变?
实现:实现模式时需了解的一些提示、技术要点及应避免的缺陷,以及是否存在某些特定于实现语言的问题
代码示例:用来说明怎样实现该模式的代码片段
已知应用:实际系统中发现的模式的例子
相关模式:与这个模式紧密相关的模式有哪些?其不同之处是什么?这个模式应与哪些其他模式一起使用?



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值