软件设计中的模式
来源:互联网 发布:java打印上箭头 编辑:程序博客网 时间:2024/05/29 09:27
设计模式被认为是面向对象技术的第二代技术,公认的主要有设计模式(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. 发现模式。当我们有了对模式使用的一些经验,也可以在开发实践中不断探索、总结、发现新的设计模式,为后来者提供更多的解决方案,提高总体的软件生产率。
设计模式应该是软件架构师必备基础吧,在遇到每一个问题时,我们都可以拿出这些已有的解决方案,看是否可以满足我们的需求。如果有多个现成方案都可以满足,再比较哪一个更好,然后再寻找是否会有更好的解决方案,在不断的比较中思考,在不断的思考中进步,在进步中成长才能无愧于岁月。
- 软件设计中的模式
- 软件设计模式在JavaScript中的应用
- 软件设计模式在JavaScript中的应用
- 软件设计中的单例模式开发
- 软件设计模式
- 软件设计模式
- 软件设计模式
- 软件设计模式
- 软件设计模式
- 软件设计模式
- 软件设计模式
- 软件设计模式
- 软件设计模式
- 软件设计模式
- 软件设计模式
- 软件设计模式
- 软件设计模式
- 软件设计模式
- Red5-ShareObject
- C++中获取内置数据类型最大值、最小值的模板类
- 关于OpenGL鼠标选取的网络资源
- iContact AE 新增功能
- 国外开源网页游戏框架
- 软件设计中的模式
- 学习心得1
- 取消IE访问HTTPS站点时的安全警告
- UI 设计你需要自问的 10 个问题
- RED5的API介紹-3
- 浅述让你的电脑时间时刻跟随东八区北京时间
- libusb_claim_interface
- WebBrowser控件跨域访问页面内容
- arm-linux-gcc交叉编译环境的建立