摘要: 熟悉设计模式的朋友们都知道,有一种叫“工厂函数”(Factory function)的模式:通过Invoke一个函数,来生成一个“某种类”的实例,而不是将实例化硬编码到代码里。这样的模式带来了优秀的扩展性,也避免了大量的重复劳动——直接用一个基类指针来“接住”工厂生产的新对象,vtable一跳,多态的意味就出来了 :-)工厂函数的能力不止于此。有时需要对用户隐藏派生类的类型(一个完全不过分的条件,不是吗?),此时,将上图中Generate函数的参数除去即可。这时新实例的类型将取决于生成函数内部的逻辑,也就是说生成函数可以根据调用时的上下文环境不同而返回不同的派生类。很强大,不是吗?但是笔者最近 阅读全文
posted @ 2011-09-17 02:19 SouthSeven 阅读(4196) 评论(7) 推荐(2) 编辑