设计模式

如何掌握并在实践中自如运用设计模式

http://tech.it168.com/n/d/2007-05-16/200705161205125.shtml

 

设计模式,应该是解决设计上的问题,解耦,软件的扩展性。

设计模式是解决某些问题的办法;在什么场合使用设计模式什么样的设计模式;

设计汽车----设计每个模块(驾驶室、副驾驶:模块)---

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

三本经典书籍:《GOF设计模式》,《设计模式解析》,《Head First Design Pattern》

解决耦合度的相关的模式有:抽象工厂模式、命令模式、外观模式、中介者模式、观察者模式和职责链模式等

 

设计模式依据其目的可分为创建型( C r e a t i o n a l )、结构型( S t r u c t u r a l )、或行为型( B e h a v i o r a l )三种。创建型模式与对象的创建有关;结构型模式处理类或对象的组合;行为型模式对类或对象怎样交互和怎样分配职责进行描述。

 

通过显示指定类创建对象
      创建对象的最简单方法是采用New关键字直接调用类的构造函数,例如我们声明一个针对SQL Sever的数据库连接:
IdbConnection dc=new SqlDataConnection();
产生的问题是当我们希望采用Oracle数据库时,代码就要发生变化。更糟糕的是,针对不同的数据库,需要不同的代码版本。
        因此我们希望在实例化时间接创建对象,与这类问题相关的设计模式有抽象工厂模式、工厂方法模式和原型模式。

通过生成子类扩展功能
        如前所述,通过生成了子类扩展功能有很多问题,会引起子类数量的大量增加和类层次的增加通过对象组合技术实现功能扩展是更好的选择。
这方面的相关模式有桥接模式、职责链模式、组合模式、装饰模式、观察者模式和策略模式等。

不能方便地修改类
        很多情况下我们无法修改已存在的类,但又希望修改这个类。例如希望采用RealPlay构件作为复读机软件的后台播放器,但我们却无法修改它。
相关的设计模式有适配器模式、装饰模式和访问者模式等。

 

6.对算法的依赖
       算法实现的目的是不变的,但算法本身却不是一成不变的。
       引起算法变化的原因很多,算法的优化、统计体系的变化,以及业务规则的变化等。例如,一个压缩算法经过改进可以大大提高压缩比,个人所得税的计算方法随着国家税收政策的调整而改变等。因此使用算法的客户不能依赖于算法,需要将算法孤立起来。
        与此相关的设计模式有生成器模式、迭代模式、策略模式、模板方法模式和访问者模式等。

7.对软硬件环境的依赖
         应用程序总是要与其运行环境打交道,我们希望屏蔽其对运行环境的依赖,以确保可移植性和可维护性。例如开发一款手机游戏,自然不希望其依赖某个品牌的API。
        与此相关的设计模式有抽象工厂模式和桥接模式等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值