Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1891083
  • 博文数量: 606
  • 博客积分: 9991
  • 博客等级: 中将
  • 技术积分: 5725
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-17 19:07
文章分类

全部博文(606)

文章存档

2011年(10)

2010年(67)

2009年(155)

2008年(386)

分类:

2008-10-31 20:41:46

原文地址:http://luchar.javaeye.com/blog/179606

如何学习设计模式?

1 先理解概念,再学习原则

先理解OO的基本概念,比如:封装、继承、多态、组合/聚合、依赖等,理解各概念的内涵,弄清楚这些概念的具体实现方式及各实现方式的优缺点。

2 先学习原则,再学习模式

设计原则是蕴含在设计模式后最根本的思想,掌握了基本的设计原则可以做到不拘泥于某个具体的设计模式,可以更容易的理解设计模式,知道在何种情况下应该采用某种模式,可以自己创造合理的设计模式。设计原则可以参考的2本书籍是《敏捷软件开发》与《UML与模式应用》。

3 从责任分配的角度学习设计模式

责任驱动的思想是学习设计模式的很好的思想,通过给各个类合理的分配实现某个需求的责任来理解设计模式。

4 类图与交互图并重

不要仅仅关注类图,类图仅仅是表达了类之间的静态关系,而交互图表达了对象之间的动态关系,可以看到对象与对象是如何写作完成一项事务。

5 从重构到模式

设计模式是一种固定的设计套路,是基于实践总结出来的可复用的解决方案,是一种经验的总结结果,如果仅仅看到最终的结果往往无法体会其用意,通过不断对某个需求的实现方案进行重构,得到最终的设计模式,可以对设计模式的背后的思想理解的更深刻。

6 记住典型案例

  通过类比,通过隐喻,通过记住某个典型案例,可以得到对设计模式的感性认识。

7 从客户的角度考虑如何使用

    在理解设计模式时,一定要从使用这些类的客户的角度来考虑是如何使用的?这样可以更容易理解该模式是如何对客户来封装的,实现了哪些封装,为了实现这些封装,采用了哪些手法?

 

在学习设计模式之前,最好先了解一下面向对象设计中的一些原则。

一、 "开放-封闭"原则(OCP)
     Open-Closed Principle原则讲的是:一个软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。

    我们在做任何系统的时候,都不要指望系统一开始时需求确定,就再也不会变化,这是不现实也不科学的想法;儿既然需求是一定会变化的,那么如何在面对需求的变化时,设计的软件可以相对容易修改,不至于说,新需求一来,就要把整个程序推到重来。怎样的设计才能面对需求的改变却可以保持相当稳定,从而使得系统可以在第一个版本以后不断推出新的版本呢?这就要求我们遵循OCP原则,多扩展,少修改。面对新需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码。通过扩展已有软件系统,可以提供新的行为。而对已有软件模块,特别是最重要的抽象层模块不能再修改,这使变化中的软件系统有一定的稳定性和延续性。

    开放-封闭原则是面向对象设计的核心所在。遵循这个原则可以带来面向对象技术所声称的巨大好处,也就是可维护、可扩展、可复用、灵活性好。开发人员应该仅对程序中呈现出频繁变化的那些部分做出抽象,然而,对于应用程序中的每个部分都刻意地进行抽象同样不是一个好注意。拒绝不成熟的抽象和抽象本身一样重要。

相关文章:
阅读(1037) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~