枫影夜读 #48 Erik M. Buck, Donald A. Yacktman – Cocoa Deisgn Patterns

2013年3月13日 · 11 years ago

2022-08-20 原《每周读书》系列更名为《枫影夜读》

当我还不了解「单例」是什么的时候我觉得「设计模式」是很高深的东西,直到看了这本书我才知道,原来设计模式不过是对我们平时常用的编程方式提炼一下给个名字罢了。

更准确地说,设计模式是针对一类问题,给出一种通用的解决方案,设计模式的名字是为了更方便程序猿们交流(虽然我不这么觉得)。设计模式这个名词来自于91年四人帮GoF出的书,书名叫「设计模式」(「Design Patterns - Elements of Reusable Object-Oriented Software」)。该书收录了23种设计模式,应该都是讲C++的,我没看过书的内容。

Cocoa Design Patterns这本书则是专门讲Mac OS和iOS的,例子都来自Cocoa框架,用ObjC语言讲解。全书主要有5个部分,涉及MVC模式,基础库涉及的模式,有助于解耦的模式,有助于隐藏复杂性的模式以及最后的实践。

1.MVC模式应该是很常见的模式了无需多言。
2.基础模式主要都是Cocoa框架提供的,像[[XXClass alloc] init]这样分两阶段的创建实例,和使用Category扩展类的方法这些。
3.有助于解耦的模式包括单例模式,NSNotification通知中心和delegate这些。
4.有助于隐藏复杂性的模式有Bundle,和奇葩的Class Cluter等等。

基本上如果ObjC开发掌握得毕竟熟练的话,这本书看起来意义不算太大=..=!!!
不过至少这本书让我记得了更多的模式词汇,而且更重要的是,以前我只是用着delegate这样的东西,但是不晓得为什么要设计出这样的东西,看着本书其实就是点到面的总结。

书的每一节都分为问题(Motivation,个人感觉翻译为提出问题比较恰当),解决方案(Solution),Cocoa例子(Examples in Cocoa),结论(Consequences)四个部分。结构非常清晰。书读起来也很容易,而且我通过这本书还发现了Class Cluter这个奇葩的东西,可以好好研究一下。