日历
网志分类
展开全部
· ***    All     ***
· ***    Mood    ***
· ***    Life    ***
· *** Technology ***
· ***     Yc     ***
· ***  Cartoon   ***
· *** Collection ***
· ***  Unsorted  ***
媒体播放器

Get the Flash Player to see this player.
SkyDrive is currently not available.

站内搜索
友情链接
· 我的歪酷 非非共享界
· 风雨妖虹
· kingbeful@csdn
· 手心的太阳@瞬间十年
· Moment@Travis
· 江南麒麟居
· εз毛线团εз
· 乌拉的neverland
· 碾过的日子 闲也陶陶
· 狡兔三窟 *^.^*
· 橄榄林的风
· 水色の街
· Powerful and delicate, Life struggling
· 阿德咖吧
· 陷阱
· 风之华
· vkobe的Neverland@@
· 白日梦已死 · 伤越夜海
· 望天
· 空の軌跡
· 没什么好东西的空间
· 心情...咖啡屋
· 随风独自凉
· Some where i belong
· .★·°双晨·故事°☆ .
· BigWorld的记事本
· *Sara's*
· 人生若只如初见
· 宠辱不惊闲看庭前花开花落·去留无意漫随天外云卷云舒
· 我思我不在
· 飞扬飘雨
· lazy的猫猫
常用链接
· [Google]
· [Google Accounts]
· [IT Items]
· [Telnet@Yanxi]
· [Wikipedia]
· [Linux Manpages]
· [Mofile.com]
· [163888.net]
· [fm.qq.com]
· [Proxy]
· [Animepaper.net]
· [FreeproxySite]
· [gonwan@fc2]
· [skydrive.live.com]
· [gonwan@lifelogger]

订阅 RSS

0109287

歪酷博客

逆さまの蝶
In this Craziness
Uncertainy
一人一人の想いを
僕らは何処かに遺せるだろうか

In this Craziness
You gave me life
一つの想いを
僕らは何処まで守れるだろうか



« 上一篇: 病 下一篇: 马太效应 »
丸子·酱 @ 2008-09-11 00:13

    咳咳.. 真的咳的厉害啊...

    我不知道是四人帮的那本书描述不清, 还是我理解能力低下, 重看依然觉得完全看懂还是很有难度的.
    今天来讲讲Creational patterns, 创建型模式:

1) Abstract Factory
    Indent: Provide an interface for creating families of related or dependent objects without specifying their concrete classes.
    可以先看看这个: http://gonwan.ycool.com/post.2905334.html, 不过有个问题, 我理解错了singleton模式的意思--b, 面壁中...
    潜移默化中, 我已经用过这个pattern了. 正如意图上写的一样, 这个模式用来创建一系列相关联的类. 代码看上面那个链接.

2) Builder
    Indent: Separate the construction of a complex object from its representation so that the same construction process can create different representations.
    说起来这个模式, 似乎用过, 又似乎从来没用过. 我觉得和strategy模式有点像. 只是strategy模式控制行为, builder控制创建.
    代码看这里: http://en.wikipedia.org/wiki/Builder_pattern

3) Factory Method
    Indent: Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses.
    这个最容易听说过了, 常见的用法是带参数的工厂方法. 代码依然看wikipedia: http://en.wikipedia.org/wiki/Factory_method_pattern

4) Prototype
    Indent: Specify the kinds of objects to create using a prototypical instance, and create new objects by copying this prototype.
    如果你会java, 个么告诉你, 其实就是要实现一个clone()函数. 为什么呢? 为了提供一个统一的对象创建接口, 且是运行时动态创建.
    这次的代码不看wikipedia了, 那上面的代码没能说明问题, 看这里: http://sourcemaking.com/design_patterns/prototype/c++/1
    Prototype和Facotory Mothod的区别是.. 其实很废话, 前者可以不用创建一个factory, 且可以运行时动态创建对象. 看了上面的代码你大概晕了, 似乎也用了一个factory啊, 怎么回事? 个么是不是有了Prototype模式, Factory Method模式就可以不要了呢?
    不是的, Factory Method初始化对象的时候, 实际要实例化的类型是为知的. 而Prototype的意图中只是说要clone, 并没有说返回的类型是什么, 但是上面的代码都返回了一个父类的接口. 其实这里用了一个Adaptor模式, 却产生了误导作用.

5) Singleton
    Indent: Ensure a class only has one instance, and provide a global point of access to it.
    面壁... 我在使用Abstract Factory模式的时候, 想让concreate factory也同样实现singleton, 事实证明没有必要, 只要对外的接口singleton就可以了. 而且无论是C++还是Java, 都不能定义static的虚函数的, 所以实现起来其实很有难度的, 我想不出来的.
    另外一个要注意的问题是, 多线程的互斥问题, 这个呵呵, Java很容易实现, C++么...win32api/pthread选一个, 皑皑.....




评论 / 个人网页 / 扔小纸条
* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 


 

分类小组论坛
杂谈 , 娱乐、八卦 , 文学、艺术 , 体育 , 旅游、同城 , 象牙塔 , 情感 , 时尚、生活 , 星座 , 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定