设计模式精解-第五章-设计模式简介

      首先,设计模式和面向对象设计是互为补充.对于设计模式的资料,看上去抽象,甚至比较哲学.但是我们需要理解他们.要学习的是设计模式的思想.

      设计模式是从建筑学和人类学发展起来的.这两者都认为"美"的,优秀的设计是有客观的标准的.Christopher Alexander这个建筑师对设计模式的研究起了很大的作用.他首先有个信念,那就是"设计的质量可以客观衡量".为了研究这个问题,他开始对各种建筑进行观察.他采用这样的研究方式--观察解决相似问题的不同解决方案,找出不同方案的相似之处.之所以用这个方式,是因为他明白,结构和它要解决的问题是不能分离的.他把这些相似之处称为"模式".他给模式下的定义是"在某一个情景下的问题的解决方案".

      每个模式,通过一种让你可以无数次使用这一解决方案,而不必再次重复同样工作的方式,描述一个在我们的环境中重复出现的问题,并描述该问题的核心.

      Alexander说一个模式的说明应该包含四个部分,我们来看看. 第一个是模式的名称.这样人们就可以来鉴别模式,用于交流. 第二个是模式的目的,它要解决的问题.(模式就是为了解决问题).第三个是我们如何实现它.也就是模式的具体实现.第四个是为了实现我们必须考虑的限制和约束.

      Alexander相信模式可以解决特定问题,并且,复杂的问题可以用模式的组合来解决.

      Alexander的理论在建筑学获得成功,那么对软件是否有用呢?答案是肯定的.讲述设计模式比较著名的书是"四人团"写的<设计模式:可复用面向对象软件的基础>.

      本章中,作者给出了模式的一些基本要素,我们罗列下

  • 名称:每个模式都有个唯一的名称
  • 意图:模式的目的
  • 问题:模式试图解决的问题
  • 解决方案:对于自己出现的场景中的问题,模式怎么提供一个解决方案
  • 参与与协作者:模式包括的实体
  • 效果:使用模式的效果.使用模式的同时研究其约束.
  • 实现:怎么实现模式(实现只是模式的具体表现形式,而不像模式本身那样被分析)
  • GoF参考:在四人团的书中得到更多信息的位置.

      作者然后论述了下为什么要学习设计模式.比较重要的是三个方面.

  1. 模式给你一个更高层次的视角
  2. 复用解决方案
  3. 建立通用的术语

      另外,四人团针对"创建优秀面向对象设计"建议了一些策略.我们需要牢记在心.

  • 针对接口编程
  • 优先使用对象组合,而不是类继承
  • 找到并封装变化点.

      这些策略对于改良设计有莫大的帮助.我们要时刻牢记.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值