楼主: yining

[精华] [专题讨论]设计模式及应用

[复制链接]
论坛徽章:
0
21#
发表于 2003-7-29 12:06 | 只看该作者
就GoF的话谈谈我的体会:
yining在开头说的已经点到点子上了,从表面上看abstract factory和factory method最大的区别在于前一个往往用来返回一系列的实例,而后一个只是用来返回一个实例的。而其中的实质是,abstract factory使某个工具类的客户(调用这个工具类的实例的类)和这个工具类解耦,当你使用一把锤子的时候,你可以向一个工具管理员要一把,而不用自己new一个,这就是abstract factory。而factory method则是工具管理员去拿锤子时,也不用考虑是去商店买一个还是用车床车一个,他只要说“锤子,来”,锤子就来了(OO的好处啊,锤子类造一个锤子实例)

使用道具 举报

回复
论坛徽章:
3
授权会员
日期:2005-10-30 17:05:332014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11
22#
发表于 2003-7-29 23:39 | 只看该作者
That is a very good thread. Can anyone tell me where I can get such a book?

By the way, anyone is in some project? I am doing a java project. Honestly, it is still difficult for me to use OOP concepts completely, although I understand some.

Thanks for sharing your opinions and experiences with me. :-)

David

使用道具 举报

回复
论坛徽章:
0
23#
发表于 2003-7-30 22:39 | 只看该作者

设计模式

和事试用设计模式

使用道具 举报

回复
论坛徽章:
2
ITPUB元老
日期:2005-05-24 22:39:33授权会员
日期:2005-10-30 17:05:33
24#
发表于 2003-8-25 23:05 | 只看该作者

推荐一个设计模式的网站......

使用道具 举报

回复
论坛徽章:
1
会员2006贡献徽章
日期:2006-04-17 13:46:34
25#
发表于 2003-8-26 12:40 | 只看该作者
<java与模式》是按照产品的等级结构来分的。
我感觉那本书里面的水果工厂的例题跟女娲造人的例子很有力的取边了这两个模式

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
26#
发表于 2003-9-9 17:29 | 只看该作者

你是达内的??? 我认识George

最初由 camry 发布
[B]我的理解:
--------------------------------------------------------
抽象工厂(Abstract Factory)给出了一个产品定义, 说明了这个工厂出品的产品到底是什么东西. 它一般有些什么功能. 不同的子厂可能有不同的实现方法.

工厂方法(Factory Method) 的基础类则是说明: 我这个方法将创建一个产品 (它有一定的定义和用处), 可是这个产品的细节我不知道. 而具体子类应该清楚它的细节, 所以有针对性的给出一个产品.
---------------------------------------------------------
这两个东西常常混在一块儿用. 比如说抽象工厂的产品的某个功能恰好就是一个工厂方法. 而往往工厂方法生产出的产品就是一个抽象工厂下的产品. [/B]

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
27#
发表于 2003-9-9 17:31 | 只看该作者

引用错了,不好意思!我认识George

最初由 hanlj 发布
[B]Abstract Factory:
Varous methods to make various objects various ways.   

Builder:
Make and return one object various ways.   

Factory Method:
Methods to make and return components of one object various ways.   

Prototype:
Make new objects by cloning the objects which you set as prototypes.   
Singleton:
A class distributes the only instance of itself. [/B]

使用道具 举报

回复
论坛徽章:
0
28#
发表于 2003-9-10 01:08 | 只看该作者

工厂嘛

其实不用那么费劲,想一下实际的工厂是怎么回事儿,然后稍稍抽象一下就都出来了嘛

一切既出于现实,则终于现实中,OO的最大好处在于与人类思维之接近,那就以我们的正常思维思之,便得矣,可乎?

工厂者,生产产品也,然生产一种产品,或是生产不同的产品而已,则谓之工厂
抽象工厂是什么呐?就是既有产品的样子,又有怎么生产这些产品的工厂做法,但实际上这些却还没有实现,于是就是抽象工厂啦

老朽如此思之,或有偏差,还望有同行不吝提示之

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
29#
发表于 2003-9-15 17:15 | 只看该作者
factory:普通和abstract.例子:ram工厂,pc工厂;园子.园子分三部分.具体的应用:ldap
普通:父子,factory有个方法,判断不同参数返回不同子.
abstact:多个普通的父子,且多个的组装(对factory进行抽象.形成父子)最外边再来一层factory.
普通的工厂一个实例,abstract则多个实例(多个的组装).

使用道具 举报

回复
论坛徽章:
0
30#
发表于 2003-9-23 01:08 | 只看该作者

近来设计模式关注甚少,何故

近来观阎宏之《java and pattern》,恰也从些论题发表些看法,探讨一番。

模式者,简言之,就是对某类问题的在某个阶段的最优解法,或曰,谓之在最优解法基础上的建模,或,老朽也。

阎将模式与“道”拉到一起,从哲学角度来解释模式,此举必成,因模式本质即谓纵横与解决问题具体方法之上的一种理论,或经典解决方法,从这个角度上来讲,模式是技术中升起来的哲学。

好了,闲语谓之曰,研究模式则应该跳出具体代码,然后复回代码,以模式规范代码,代码实例化模式。而模式出于现实,即于日常解决方式中取其精要,故思模式者必以日常思路理解并进行,而非计算机思路也,进而以实现,则OO也

模式之要素,模式者,从JAVA角度来讲,则可谓之解决方法的类,要素者,基本属性也
Gof格式吧,也算是一种模式,呵呵
1. 名字(Name) 模式的标记
2. 问题(Problem) 没有问题哪需解决方法,没有解决方法何来模式
3. 环境(Context,或初始环境Iitial Context) 问题出现的条件,及解决方法所需的条件
4. 力(Forces) 解决问题的方法不是独立的,故会受到其它制约
5. 解答(Solution) 解决方法的步骤及每一步要做的事情的说明,手册
6. 举例(Example) 实例化一个此类问题的解法,即实例说明
7. 末态环境(Resulting Context) 模式应用后的结果状态
8. 推理(Rationale) 为什么要这样解决问题,及解决的过程
9. 其他有关模式(Related Patterns) 模式组本身也是一个整体,构成了问题的对立面,模式间的关系
10. 已知的应用(Known Uses) 实际使用情况

简单理解一下,构成模式的是什么呐,首先要产生问题,什么情况会产生问题呐?然后由问题至问题分析,进行推理,从而有一个解答方法,也就是推理的结果说明,这里面还要分析在解决这个问题的时候会有哪些相关联的解决方法,并且对其他问题的解决方法产生什么影响,然后举例说明之,最后就是实际应用情况。

(Continued)

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表