设计模式的基础书籍求推荐 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
WildCat
V2EX    问与答

设计模式的基础书籍求推荐

  •  
  •   WildCat 2014-05-05 18:23:42 +08:00 3166 次点击
    这是一个创建于 4254 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近虽然想更新V2的iOS客户端,但是感觉自己基础深深不足,请教一下介绍设计模式的图书。

    不知道《Head First设计模式》如何?看了下出版年份是07年,不知道是否可以?最近几年是否出现了新的设计模式?
    8 条回复    2014-05-06 10:24:15 +08:00
    Mutoo
        1
    Mutoo  
       2014-05-05 18:47:51 +08:00   1
    貌似23种设计模式从90年代由 GoF 提出来后,就没有增加过。不过在不同领域的应用会很不相同。

    前段时间阅读了 Game Programming Patterns
    里面介绍了游戏中常用的模式,以及游戏开发领域独有的模式。
    但这不属于GoF,在其它领域也不适用。

    http://gameprogrammingpatterns.com
    Madimo
        2
    Madimo  
       2014-05-05 22:11:23 +08:00   1
    《设计模式解析》这本书不错,目前正在看
    http://book.douban.com/subject/20406704/
    akfish
        3
    akfish  
       2014-05-05 22:20:26 +08:00   1
    就最原始的<Design Patterns>就行,粗读一遍,然后开始撸项目,只拿来当reference用。
    然后你开始看大中型项目的源代码,UI框架的看几个,MVC的App看几个。到后来看项目目录怎么组织的就能知道是什么pattern,反正我是这样的。

    撸几个项目你就发现根本不用刻意去想,写出来的代码自然就是某种pattern。
    正所谓大巧不工,重剑无锋。
    WildCat
        4
    WildCat  
    OP
       2014-05-05 22:24:29 +08:00
    @akfish App求推荐源码,iOS的开源App不太好找啊!谢谢!


    @akfish
    @Mutoo
    谢谢!
    akfish
        5
    akfish  
       2014-05-05 22:35:37 +08:00   1
    @WildCat iOS的没注意过,不用局限于某个平台嘛,也就是各种命名规范和语法不同而已,Design Patterns是超越语言超越平台的存在。
    arbipher
        7
    arbipher  
       2014-05-05 23:03:53 +08:00   1
    @Mutoo 我也刚看完《Game Programming Patterns》。HN每周精选推送的,就看了一下。我不写游戏,但是我觉得用游戏做例子挺好理解的。这本书作为Patterns的书,不如作为基础书更好。作者对Compilers、Prototype、Virtual Machine的解释都挺好的。

    此外还看过GoF的原版和《Head First Design Patterns》。

    楼主先看《Head First Design Patterns》就好了。看完不过瘾再看GoF原版,如果看懂了,GoF不看也罢。

    设计模式的核心就是indirection。
    大多数设计模式都在降低耦合,比如从静态绑定推延到动态绑定,比如分离构造函数(factory method),比如分离访问函数(visitor),比如分离逻辑判断(state machine)。
    但是不可能把所有部分全都分离了。另一个重点是预测变化,预测程序可能在什么地方发生变化,为了减少发生这种变化时需要修改的代码,需要降低哪些部分之间的耦合度。
    有些模式只在静态OOP语言中有用途。有些是优化用的,Flyweight。还有些被喷的,比如Singleton。

    结论是如果看了《Head First Design Patterns》,你知道Patterns这玩意的“用意”,就够了。
    sivacohan
        8
    sivacohan  
    PRO
       2014-05-06 10:24:15 +08:00   1
    看《UNIX编程艺术吧》。
    知其然,知其所以然。
    除了学习设计模式,我们还需要知道设计模式是在什么情况下产生的。目的是解决什么问题。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2541 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 05:33 PVG 13:33 LAX 21:33 JFK 00:33
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86