《Head First 设计模式学习记录-终篇亦非终篇》

《Head First 设计模式学习记录-终篇亦非终篇》


2013年8月5日设计模式学习总结

前言:
    设计模式断断续续也算是学了几个月了,让问我学得怎样,我还真不好说,我算是把这本书从头看到尾,然后每一章都有发表博客记录,代码也是一行一行敲出来的。在开始本篇博客之前,我想我应该写写书评才对,这次也算是有系统的去学习设计模式了,也算是完成了一项任务,但这个任务完成得并不太理想,因为我感觉掌握得不太好,有些地方理解还不到位,让我去写一个关于模式的程序,我真写不出来。不过,如果让我遇到用上本书介绍的模式的话,我倒是能很好的认出来,并且知道它担当的是什么角色。《Head First设计模式》这本书呢,很厚的一本,要坚持看下去还真不容易,更何况是专门发表博客去记录,我给这本书的评价还算蛮高的,不过还是有点不足,我感觉它这本书所介绍的例子有点理所当然的容易理解了,其实有些并不太容易理解,倒是把它复杂化了,反正我是这么觉得,有些设计模式我感觉不应该用比较复杂的例子去阐述的,虽说作者在这本书解释的很清楚,但还是不能一遍就能看明白,着实这本书不能只看一遍。或许多看几遍,有些地方也就能读懂了。我听朋友说过,《大话设计模式》是一本相当生动易懂的书,我也打算去买一本来看看,对比对比,可能我对设计模式的理解就更加深刻了。有时候外国的书并不都适合我们中国人,即使它写的图文并茂。
   为什说这是终篇亦非终篇呢?与设计模式相处是这本书的最后一章,所以是终篇,但对与设计模式本身来说,绝不仅仅只有这十几个模式,还有很多模式在这本书没介绍,比如桥接模式、生成器模式、责任链模式、蝇量模式、解释器模式、中介者模式、备忘录模式、原型模式、访问者模式等等,这些能有专门的代名词的模式都是经过无数实践总结出来的经验宝典。只要你足够厉害,你自己都可以设计出一种模式出来,那也算作一种设计模式。

   好了,说了一堆,总的来回顾一下整本书介绍的设计模式吧。

   装饰者--包装一个对象,以提供新的行为。
   状态--封装了基于状态的行为,并使用委托在行为之间切换。
   迭代器--在对象的集合之中游走,而不暴露集合的实现。
   外观--简化一群类的接口。
   策略--封装可以互换的行为,并使用委托来决定使用哪一个。
   代理--包装对象,以控制对此对象的访问。
   工厂方法--由子类决定要创建的具体类是哪一个。
   适配器--封装对象,并提供不同的接口。
   观察者--让对象能够在状态改变时被通知。
   模版方法--由子类决定如何实现一个算法中的步骤。
   组合--客户用一致的方式处理对象集合和单个对象。
   单件--确保有且只有一个对象被创建。
   抽象工厂--允许客户创建对象的家族,而无需制定他们的具体类。
   命令--封装请求成为对象。


要点:
  •    让设计模式自然而然地出现在你的设计中,而不是为了使用而使用。
  •    设计模式并非僵化的教条,你可以依据自己的需要采用或调整。
  •    总是使用满足需要的最简单解决方案,不管它用不用模式。
  •    学习设计模式的类目,可以帮你自己熟悉这些模式以及它们之间的关系。
  •    模式的分类是将模式分为不同的族群,如果这么做对你有帮助,就采用吧!
  •    你必须相当专注才能够成为一个模式的作家:这需要时间也需要耐心,同时还必须乐意做大量精化工作。
  •    请牢记:你所遇到大多数的模式都是现有模式的变体,而非新的模式。
  •    模式能够为你带来的最大好处之一是:让你的团队拥有共享词汇。
  •    任何社群都有自己的行话,模式社群也是如此。别让这些行话伴着,在读完本书之后,你已经能够应用大部分行话了。

最后要介绍的是跟模式对立的“反模式”——告诉你如何采用一个不好的解决方案解决一个问题。
反模式看起来总像是一个好的解决方案,但是当它真正被采用后,就会带来麻烦。



   



你可能感兴趣的:(【技能提升之设计模式】,Head,First,设计模式学习记录)