网站首页
本站精华
免费下载
游客:
注册
|
登录
|
会员
|
搜索
|
帮助
LoveUnix
»
行业应用 项目实施
» [原创]设计模式研究
‹‹ 上一主题
|
下一主题 ››
33
2/3
‹‹
1
2
3
››
投票
交易
悬赏
活动
打印
|
推荐
|
订阅
|
收藏
标题: [原创]设计模式研究
threehair
荣誉斑竹
UID 27
精华
78
积分 3034
帖子 5716
活跃指数 0
LU金币 2093 个
LU金条 0 个
阅读权限 200
注册 2003-9-17
#13
大
中
小
使用道具
发表于 2003-11-10 18:11
资料
个人空间
短消息
加为好友
QUOTE(cheyenne @ 2003-11-10 18:10:20)
还是咱们三毛姐姐好啊 !!!
8客气拉
你不会又是一个晚上没睡吧?
╭⌒╮ ╭⌒╮╭⌒╮
╱◥███◣╭╭ ⌒╮
︱田︱田 田|
关门,上锁,钥匙已生锈。
世事静方见,人情淡始长!
Bell
LU天使
三军总司令
UID 1782
精华
9
积分 699
帖子 1361
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 50
注册 2003-11-6
来自 MIT
#14
大
中
小
使用道具
发表于 2003-11-10 22:46
资料
个人空间
主页
短消息
加为好友
哈哈,我一般上午睡觉,晚上工作。谢谢姐姐关心啊!
Ensemble à tout jamais!
无双
荣誉斑竹
天才猪
UID 4
精华
84
积分 5863
帖子 11390
活跃指数 0
LU金币 4248 个
LU金条 0 个
阅读权限 200
注册 2003-9-16
来自 杭州
#15
大
中
小
使用道具
发表于 2003-11-11 00:21
资料
个人空间
主页
短消息
加为好友
上面写到接口与继承
下面讲讲继承与组合还有参数化类
继承与组合是两种策略
都是为了代码的复用
但是两个方法复用的方式不一样,继承是通过产生子类进行复用
这时子类必然知道父类的实现,因此叫“白箱复用”
由于知道父类实现,因此破坏了父类的封装性。
组合是通过定义成员函数进行复用,类只能通过组合的类定义的接口进行访问
而不可以访问它的protected部分,也不必(不能)知道它的实现。所以叫“黑箱复用"
组合就是使用已有的类来实现一个功能。
继承就是对某个类进行细化,它可以选择对某个行为进行细化
原则是下面:(抄书上的)
优先使用组合而非继承
在继承中,改变父类的实现,就会影响对应的子类接口的实现,所以在修改时不是很方便
,但是组合因为只对接口进行调用,修改时不会影响什么子类,只会影响调用这个接口的地方,改动比较方便
委拖是组合的一个特例,就是一个对象把接收到的请求交给另一个对象进行处理。
参数化类,参数化类使用的技术是模板(在C++中,STL的容器就是一个典型例子)就是把某些结果只与类型相关,而与过程无关的东西放在一起。如
a=a+b , 如果定义了两个类,Intger Float,
struct Int{
int i;
};
struct Float{
int i;
};
这时要定义这两个类的Add,如果使用普通方法的话需要写两份代码,一份是
Int Add(const Int&a, const Int& B){
Int c;
c.i = a.i+b.i;
return c;
}
同样还要定义一个参数是Float类型的同样代码的函数,是不是觉得有点累,而且以后还要维护两套同样的代码(如果BOSS是靠代码行类计算的话
那可以放心这样写)
使用模板就不必这么麻烦了。你可以定义如下
template <class T>
T Add(const T&a,const T&b)
{
T c;
c.i=a.i|b.i;
return c;
}
OK
三种方法比较
从代码编写上来说,继承是最快的,如果你不想实现某个类的所有接口,那只要从它继承就可以了。但是破坏了封状性,修改父类就会影响子类,维护性不是很好。并且是编译时就指定,无法运行时改变功能。(如if
a then b这样)
组合是使用一组对象来实现一个功能。性能方面比不上继承,但是修改一个类不会影响其它类,另外可以运行时指定(你可以在运行时指定由哪个对象来处理)。另外由于需要运行时才指定对象,所以有低效性问题(如果想完全高效那当然是使用C或是ASM了
所以这方面不用担心)
参数化类型(也就是模板)是定义一组除了类型外其它没有什么不同的操作的好方法,无论是维护还是开发上都不错。
不要问我结果 我只研究过程与思路
无双客栈
无双
荣誉斑竹
天才猪
UID 4
精华
84
积分 5863
帖子 11390
活跃指数 0
LU金币 4248 个
LU金条 0 个
阅读权限 200
注册 2003-9-16
来自 杭州
#16
大
中
小
使用道具
发表于 2003-11-12 01:26
资料
个人空间
主页
短消息
加为好友
23个模式说明
在这里将会大概的说明一下23个模式
后面会对每一个模式进行详细的介绍
在这里可能会有写错的 欢迎大家指正
Abstract Factory抽象工厂
向客户提供一个接口 让客户在不必指定产品的具体类型的情况下, 创建多个产品族中的产品对象。
因为这些产品族是一起工作的,所以使用抽象工厂更方便,在书中举的例子是有门、房间、墙的党宫组件
Adapter适配器 把一个类的接口转换成用户希望的另一个接口,最简单的联想是和重命名类似的东东。
Bridge 桥接 ,把抽象部分与实现部分分离,使他们可以独立的变化。实现部分提供接口供抽象部分调用。bridge是使用组合而不是继承的体现。这里转了一篇文章,可以对照着理解。
builder 生成器
不要问我结果 我只研究过程与思路
无双客栈
大菠萝
LU新生
UID 2247
精华 0
积分 6
帖子 12
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 10
注册 2003-11-12
#17
大
中
小
使用道具
发表于 2003-11-12 10:41
资料
个人空间
短消息
加为好友
这个是抽象工厂的UML图,是rose帮助里的,呵呵
附件:
您所在的用户组无法下载或查看附件
无双
荣誉斑竹
天才猪
UID 4
精华
84
积分 5863
帖子 11390
活跃指数 0
LU金币 4248 个
LU金条 0 个
阅读权限 200
注册 2003-9-16
来自 杭州
#18
大
中
小
使用道具
发表于 2003-11-12 10:45
资料
个人空间
主页
短消息
加为好友
写得很详细
大菠萝兄你在哪里找到的
我什么没看到呢
不要问我结果 我只研究过程与思路
无双客栈
[广告]
记录自己的思想火花,留住每日的技术积累,尽在拥有属于自己独立域名的博客。
大菠萝
LU新生
UID 2247
精华 0
积分 6
帖子 12
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 10
注册 2003-11-12
#19
大
中
小
使用道具
发表于 2003-11-12 10:53
资料
个人空间
短消息
加为好友
在我的C:\Program Files\Rational\Rose\designpattern中
[广告]
记录自己的思想火花,留住每日的技术积累,尽在拥有属于自己独立域名的博客。
无双
荣誉斑竹
天才猪
UID 4
精华
84
积分 5863
帖子 11390
活跃指数 0
LU金币 4248 个
LU金条 0 个
阅读权限 200
注册 2003-9-16
来自 杭州
#20
大
中
小
使用道具
发表于 2003-11-12 11:01
资料
个人空间
主页
短消息
加为好友
找到了
不要问我结果 我只研究过程与思路
无双客栈
[广告]
记录自己的思想火花,留住每日的技术积累,尽在拥有属于自己独立域名的博客。
大菠萝
LU新生
UID 2247
精华 0
积分 6
帖子 12
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 10
注册 2003-11-12
#21
大
中
小
使用道具
发表于 2003-11-12 11:07
资料
个人空间
短消息
加为好友
强烈建议无双按照图来讲,随便还可以讲讲UML的图示含义,一举两得
[广告]
记录自己的思想火花,留住每日的技术积累,尽在拥有属于自己独立域名的博客。
无双
荣誉斑竹
天才猪
UID 4
精华
84
积分 5863
帖子 11390
活跃指数 0
LU金币 4248 个
LU金条 0 个
阅读权限 200
注册 2003-9-16
来自 杭州
#22
大
中
小
使用道具
发表于 2003-11-12 11:13
资料
个人空间
主页
短消息
加为好友
我是先想写个大概介绍
后面再写每个模式的具体内容与实现
写到模式具体内容时会开每个模式开一个新贴的
不要问我结果 我只研究过程与思路
无双客栈
qinxj
技术专家
UID 1117
精华
1
积分 166
帖子 328
活跃指数 0
LU金币 5406 个
LU金条 0 个
阅读权限 200
注册 2003-10-29
#23
大
中
小
使用道具
发表于 2003-11-12 13:42
资料
个人空间
短消息
加为好友
严重同意,无双兄来开头,我们就来和一和!
合久必分、分久必和!
无双
荣誉斑竹
天才猪
UID 4
精华
84
积分 5863
帖子 11390
活跃指数 0
LU金币 4248 个
LU金条 0 个
阅读权限 200
注册 2003-9-16
来自 杭州
#24
大
中
小
使用道具
发表于 2003-11-12 13:57
资料
个人空间
主页
短消息
加为好友
好啊
现在开始看
我想总会有很多不足的地方
后面再继续进行补充与讨论
一起学习
不要问我结果 我只研究过程与思路
无双客栈
33
2/3
‹‹
1
2
3
››
投票
交易
悬赏
活动
LoveUnix
专项技术区
> AIX -IBM UNIX
> 其他UNIX & Linux
> i5 (AS400) & IBM大机
> PC Server & HPC
> 存储设备
> 备份软件
> 网络 & 安全
> 编程开发 & Rational
> DB2 & Informix
> ORACLE等数据库
> 中间件技术
行业综合区
> 职业咨询 前程无忧
> 培训认证 行业入门
> 行业应用 项目实施
> 产品信息 商务交流
> Free download下载
交流灌水区
> 蓝色太平洋
> 墨香雅韵
> 论坛建设
> 博客专区
当前时区 GMT+8, 现在时间是 2008-10-14 04:46
乐悠LoveUnix论坛-京ICP备05005823号
Thanks to
Discuz!
© 2001-2007 Power by
LoveUnix.net
Processed in 0.056581 second(s), 6 queries , Gzip enabled
TOP
清除 Cookies
-
联系我们
-
乐悠LoveUnix
-
Archiver
界面风格
----------
Discuz! 5 Default
新DISCUZ风格
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
升级个人空间
基本概况
流量统计
客户软件
发帖量记录
论坛排行
主题排行
发帖排行
积分排行
在线时间
管理团队
管理统计