老聚 发表于 2013-1-6 02:21:10

设计模式学习笔记-准备篇

<div id="cnblogs_post_body">1. 设计模式的重要性
  1.1 设计模式解决的是在软件过程中如何来实现具体的软件功能。实现同一个功能的方法有很多,哪个设计容易扩展,容易复用,松耦合,可维护?设计模式指导我们找到最优方案。
  1.2 设计中往往会存在设计缺陷,这些缺陷包括:
    僵化性:难以对软件进行改动,即使在功能上来看是很小的改动
    脆弱性:在进行很小的改动时,可能导致很多地方出现问题
    顽固性:要把系统中某些通用的功能分离出来的努力和风险非常巨大
    粘滞性:当面临改动时,改动的方案有很多,一些会保持设计,一些会破坏设计,当采用保持设计的方法比用破坏设计的方法更难应付变化时,说明原设计具有较高的粘滞性
    晦涩性:模块难以理解
    不必要的重复:代码不能复用,往往通过Copy-Paste来实现相似功能
    不必要的复杂性:设计中包含了没有用的成分,往往是过度设计导致的
  1.3 如果你觉得在开发过程中发现以上问题(缺陷),那么就需要使用设计模式来改善最初设计,即重构原有的设计。如果你是最初的设计者,那么也需要应用设计模式来找到一个最优方案。设计模式不是编程语言,它修炼的是程序员的内功。因此,对于一个开发者来说,学习设计模式是非常必要的。
2. 对于初学者来说,必要的知识准备还是必须的,没有这些基础就很难将这些理解透彻。
  2.1 面向对象基本知识
  设计模式是面向对象编程的设计指导,因此学习设计模式前先要理解什么是面向对象,这里只简单列出了面向对象的主要概念,要是初学者的话还得查阅相关资料;对已经了解的老手来说,权当复习和梳理一下吧。
    2.1.1 面向对象三大特征:封装、继承、多态
    2.1.2 类与实例
    2.1.3 构造(析构)方法
    2.1.4 重载
    2.1.5 访问修饰符
    2.1.6 属性/字段/方法
    2.1.7 抽象类
    2.1.8 接口
  2.2 UML类图
  在学习设计模式时,通常接触到的只有类图,因此读懂UML类图对理解模式来说有很大帮助。下面来介绍UML类图中的关系    
  http://pic002.cnblogs.com/images/2012/155937/2012070609345754.png
    2.2.1 依赖关系(Dependency),用虚线加箭头表示。如上图动物(Animal)依赖空气(Air)。表示依赖关系的代码有以下几种
      1)作为参数
<div class="cnblogs_code">      public class Air      {            public void GetOxygen()            {                Console.WriteLine("Get oxygen from air.");            }      }      public abstract class Animal      {            /// <summary>            /// 动物依赖空气才能呼吸,作为参数传入            /// </summary>            /// <param name="air"></param>            public void Breathe(Air air)            {                air.GetOxygen();            }      }
页: [1]
查看完整版本: 设计模式学习笔记-准备篇