软件设计模式的四个要素
设计模式使人们可以更加简单方便地复用成功的设计和体系结构。
将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。
模式名称一个助记名,它用一两个词来描述模式的问题、解决方案和效果。
命名一个新的模式增加了我们的设计词汇。
设计模式允许我们在较高的抽象层次上进行设计。
基于一个模式词汇表,我们自己以及同事之间就可以讨论模式并在编写文档时使用它们。
模式名可以帮助我们思考,便于我们与其他人交流设计思想及设计结果。
找到恰当的模式名也是我们设计模式编目工作的难点之一。
问题描述问题存在的前因后果,它可能描述了特定的设计问题,如怎样用对象表示算法等。
也可能描述了导致不灵活设计的类或对象结构。
有时候,问题部分会包括使用模式必须满足的一系列先决条件。
解决方案描述了设计的组成成分,它们之间的相互关系及各自的职责和协作方式。
因为模式就像一个模板,可应用于多种不同场合,所以解决方案并不描述一个特定而具体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合(类或对象组合)来解决这个问题。
效果描述了模式应用的效果及使用模式应权衡的问题。
尽管我们描述设计决策时,并不总提到模式效果,但它们对于评价设计选择和理解使用模式的代价及好处具有重要意义。
软件效果大多关注对时间和空间的衡量,它们也表述了语言和实现问题。
因为复用是面向对象设计的要素之一,所以模式效果包括它对系统的灵活性、扩充性或可移植性的影响,显式地列出这些效果对理解和评价这些模式很有帮助。
帮我写一篇文章,设计模式在软件设计中的应用研究。
分数不是问题
MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:[1] Model(模型)表示应用程序核心(比如数据库记录列表)。
View(视图)显示数据(数据库记录)。
Controller(控制器)处理输入(写入数据库记录)。
MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。
在Java中应用设计模式Singleton基本概念是什么?
Singleton 是一种创建性模型,它用来确保只产生一个实例,并提供一个访问它的全局访问点.对一些类来说,保证只有一个实例是很重要的,比如有的时候,数据库连接或 Socket 连接要受到一定的限制,必须保持同一时间只能有一个连接的存在.再举个例子,集合中的 set 中不能包含重复的元素,添加到set里的对象必须是唯一的,如果重复的值添加到 set,它只接受一个实例.JDK中正式运用了Singleton模式来实现 set 的这一特性,大家可以查看java.util.Collections里的内部静态类SingletonSet的原代码.其实Singleton是最简单但也是应用最广泛的模式之一,在 JDK 中随处可见.
请问学习设计模式到底有什么用?
作为学习和实践设计模式超过10年的我来说,设计模式的本质是简约和美。
简约就是能用一行语句解决的问题决不用两行。
美就是优美,就是健康,就是自然,就是你看到美好的事物时的感受。
说实话,我接触过不下1000万行代码。
有些代码我看了会比看见范冰冰还喜欢,觉得太美了。
有些代码我看了会比看见凤姐还讨厌。
设计模式说白了只是编程和设计者通向简约和美的一条途径。
有些时候不要用工学的眼睛和心去看待本身是工学的问题,而应该尽量达到“此通彼通,一脉相通”的境界。
当你在编程和设计软件时每时每刻都想着我要让软件系统变得简约变得美,你自然就掌握了设计模式的本质,剩下的只不过是学习一些方法和技巧而已。
杨澜曾经说过,我即便不做主持人,做扫大街的,我也会成为全国最有名最优秀的清洁工,就是这个意思。
吾乃常山老实人