`
yidongkaifa
  • 浏览: 4065458 次
文章分类
社区版块
存档分类
最新评论

软件设计中的模式

 
阅读更多

设计模式被认为是面向对象技术的第二代技术,公认的主要有设计模式(design patterns)、反模式(anti-patterns)、实现模式(implementation patterns)。这三方面都有标志性的书籍
Gof 的 “Design Patterns”
William J. Brown, et al. “AntiPatterns”
Kent Beck. “Implementation Patterns”

这三种模式涉及到软件设计的方方面面,而且侧重点也不一样,设计模式侧重于软件架构,反模式侧重于软件管理,实现模式侧重于编码实现。模式是前人在软件开发中的经验总结,给后人留下了宝贵的财富,既然是经验我们就应该学习。除了这三种模式,我觉得编码规范应该也算作一种模式---“编码模式”。

虽说编码风格并不影响软件的运行效率,但会明显影响代码的可读性,而可读性也是评价代码质量的一个重要标志,Kent Beck把软件可读性放到编程规律的首位,在”Implementation Patterns”: Programms are read more often than they are written. “编码模式”应该是软件设计中最底层的模式,这样反模式、设计模式、实现模式、编码模式就构成了软件设计中自上而下的一个完整的模式层次。

模式不是限制程序员的思维,而是给程序员经验,给程序员提供了现成的问题解决方案,但我们的思路不应该局限于这些模式。在学习与使用模式时我觉得应该有几个过程。
1. 了解模式。首先,应该了解在软件设计中有哪些模式,有哪些前辈给我们留下的经验,要了解这些经验在哪些方面可以帮助我们的软件开发,分别可以应用于什么样的开发场景,这样,当我们遇到熟悉的场景,才会想到前辈已经给我们提供了一些解决方案。
2. 理解模式。我们知道某些模式可以应用于哪些场景,当我们需要它们时,我们就不得必彻底地去理解它,然后应用它。
3. 比较模式。有些模式有很是有些相似的比如Facade和Adapter好像很近似,只有我们深入理解了这些模式,并在应用中体会了它们,通过对这些模式的比较才能更好地区分它们,把合适的模式用到合适的场景中去;并且通过比较来发现模式的局限与缺陷,并在必要是避开或解决这些潜在的问题。
4. 发现模式。当我们有了对模式使用的一些经验,也可以在开发实践中不断探索、总结、发现新的设计模式,为后来者提供更多的解决方案,提高总体的软件生产率。

设计模式应该是软件架构师必备基础吧,在遇到每一个问题时,我们都可以拿出这些已有的解决方案,看是否可以满足我们的需求。如果有多个现成方案都可以满足,再比较哪一个更好,然后再寻找是否会有更好的解决方案,在不断的比较中思考,在不断的思考中进步,在进步中成长才能无愧于岁月。

分享到:
评论

相关推荐

    软件设计模式实验报告.pdf

    软件设计模式实验报告.pdf软件设计模式实验报告.pdf软件设计模式实验报告.pdf软件设计模式实验报告.pdf软件设计模式实验报告.pdf软件设计模式实验报告.pdf软件设计模式实验报告.pdf软件设计模式实验报告.pdf

    浅析23种软件设计模式

    浅析23种软件设计模式

    软件设计模式期末作业

    软件设计模式作业,要求用3个设计模式以上实现。代码涉及了装饰模式,工厂模式和适配器模式

    吉林大学软件设计模式课件以及作业答案.zip

    软件设计模式

    软件设计模式综合实验(课程设计)源码

    3.仿照教材上面围棋软件的设计思路,设计一款五子棋,采用至少5种设计模式。 说明: (1)实验报告中把设计的思路说清楚,给出你所采用的设计模式的原始类图。 (2)对于你系统中使用了设计模式的模块绘制其类图,...

    软件设计模式与体系结构

    第一篇分为8章,介绍了软件体系结构的基础理论,包括软件体系结构的概念及演化、软件建模基础、软件体系结构的形式化、软件体系结构的风格、体系结构的描述语言、软件质量建模、设计模式等内容。第二篇分为4章,首先...

    软件设计(设计模式)课程实验报告.docx

    本文档是软件设计课程实验报告,主要包括:面向对象设计原则实验、创建型设计模式实验、结构型设计模式实验、行为型设计模式实验、设计模式综合实验。

    软件设计模式作业三行为式模式

    软件设计模式 行为式模式 南华大学 类图 代码 个人总结 职责链模式 组合命令模式 中介者模式 备忘录模式 观察者模式 状态模式

    软件设计精要与模式

    其中,尤以设计模式为主,深入探讨了软件设计过程中的原则与模式,并结合大量的实例与代码演示了如何合理运用设计模式,改善程序模块的可复用性、可扩展性,实现模块间的松散耦合。全书将软件设计理论与项目实践完美...

    UML及软件设计模式

    UML及软件设计模式,软件设计-从程序设计到体系结构软件设计-从程序设计到体系结构

    软件秘笈-设计模式那点事.pdf

    本书在第1章软件设计模式概述后,从第2章到第24章诠释23个软件设计模式。每一种都以一个生活故事开始,然后是模式定义、模式分析、模式实现、设计原则和使用场合。模式实现通过Eclipse中的Java工程展开,采用软件...

    软件体系结构设计模式作业

    软件体系结构设计模式作业。作业程序,设计模式。。。

    设计模式(软件设计模式)

    《软件设计模式》《软件设计模式》《软件设计模式》

    软件设计模式实验报告

    是软件设计模式的大部分模式设计方法,里面都有介绍具体的实例供大家参考。

    软件工程设计模式

    软件工程设计模式软件工程设计模式软件工程设计模式软件工程设计模式

    软件设计模式大作业

    java设计模式期末大作业,运用了6种模式,包括简单工厂模式、工厂方法模式、单例模式、门面模式、策略模式、观察者模式,文档包括系统流程,系统类图,各个模式的子类图,源代码,实验截图。绝对完整.

    软件设计模式与体系结构(讲解+代码)

    上篇:软件设计模式例子代码  【例2.2】简单工厂方法模式-汽车保险  【例2.3】工厂方法模式-汽车保险  【例2.4】抽象工厂模式-房屋信息  【例2.5】生成器模式-房屋信息  【例2.6】单例模式-互联网连接  ...

    C++软件设计模式

    C++软件设计模式

    软件设计模式与体系结构课后习题代码(孙玉山).zip

    软件设计模式与体系结构课后习题代码,孙玉山版本

    软件设计模式在嵌入式控制系统中的应用

    本文探讨了软件设计模式在嵌入式系统中的应用,通过分析并实际解决嵌入式控制系统所面临的主要问题,确立嵌入式控制系统的软件架构,并对嵌入式软件的复用进行了有效的尝试和探索。

Global site tag (gtag.js) - Google Analytics