??xml version="1.0" encoding="utf-8" standalone="yes"?>曰本成人黄色,欧美黄色视屏,一区二区三区wwwhttp://www.shnenglu.com/mzty/category/249.html<br/>
<br/>
<a href = "http://www.shnenglu.com/mzty/archive/2007/03/02/19109.html"><font size = 5 color ="#00FFFF">{C++ 基础}<font/></a>
<a href = "http://www.shnenglu.com/mzty/archive/2007/08/13/29922.html"><font size = 5 color ="#00FFFF">{C++ 高}<font/></a>
<a href = "http://www.shnenglu.com/mzty/archive/2007/04/16/22064.html"><font size = 5 color ="#00FFFF">{C#界面QC++核心法}<font/></a>
<a href = "http://www.shnenglu.com/mzty/archive/2007/03/04/19163.html"><font size = 5 color ="#00FFFF">{设计模式}<font/></a>
<a href = "
http://www.shnenglu.com/mzty/archive/2007/03/04/19167.html"><font size = 5 color ="#FF0000">{C#基础}<font/></a>
zh-cnTue, 20 May 2008 01:20:01 GMTTue, 20 May 2008 01:20:01 GMT60- UMLcd关系http://www.shnenglu.com/mzty/archive/2008/04/16/47264.html梦在天梦在天Wed, 16 Apr 2008 09:09:00 GMThttp://www.shnenglu.com/mzty/archive/2008/04/16/47264.htmlhttp://www.shnenglu.com/mzty/comments/47264.htmlhttp://www.shnenglu.com/mzty/archive/2008/04/16/47264.html#Feedback0http://www.shnenglu.com/mzty/comments/commentRss/47264.htmlhttp://www.shnenglu.com/mzty/services/trackbacks/47264.html本文随便转蝲Q请保留出处Q?a >http://blog.csdn.net/dylgsy/
UML的类囑օpd为: 兌、聚?l合、依赖、泛化(l承Q。而其中关联又分ؓ双向兌、单向关联、自w关联;下面p我们一h看看q些关系I竟是什么,以及它们的区别在哪里?br>
1、关?br>
双向兌Q?br>C1-C2Q指双方都知道对方的存在Q都可以调用Ҏ的公共属性和Ҏ?br>
在GOF的设计模式书上是q样描述的:虽然在分析阶D这U关pL适用的,但我们觉得它对于描述设计模式内的cdpL说显得太抽象了,因ؓ在设计阶D关联关pd被映射为对象引用或指针。对象引用本w就是有向的Q更适合表达我们所讨论的U关pR所以这U关pd设计的时候比较少用到Q关联一般都是有向的?br>
使用ROSE 生成的代码是q样的:
双向兌在代码的表现为双斚w拥有Ҏ的一个指针,当然也可以是引用或者是倹{?br>

单向兌:
C3->C4Q表C相识关p,指C3知道C4QC3可以调用C4的公共属性和Ҏ。没有生命期的依赖。一般是表示ZU引用?br>
生成代码如下Q?/p>
单向兌的代码就表现为C3有C4的指针,而C4对C3一无所知?br>

自n兌Q反w关联)Q?br>自己引用自己Q带着一个自q引用?br>
代码如下Q?/p>

class C14


...{

public:

C14* theC14;


};
是在自q内部有着一个自w的引用?br>
2、聚?l合
当类之间有整?部分关系的时候,我们可以用组合或者聚合?br>

聚合Q表CC9聚合C10Q但是C10可以dC9而独立存在(独立存在的意思是在某个应用的问题域中q个cȝ存在有意义。这句话怎么解,L下面l合里的解释Q?br>
代码如下Q?/p>

l合Q也有hUCؓ包容Q:一般是实心菱Ş加实U箭头表C,如上图所C,表示的是C8被C7包容Q而且C8不能dC7而独立存在。但q是视问题域而定的,例如在关心汽车的领域里,轮胎是一定要l合在汽车类中的Q因为它d了汽车就没有意义了。但是在卖轮胎的店铺业务里,q轮胎d了汽车,它也是有意义的,q就可以用聚合了。在《敏捷开发》中q说刎ͼAl合BQ则A需要知道B的生存周期,卛_能A负责生成或者释放BQ或者A通过某种途径知道B的生成和释放?br>
他们的代码如下:
可以看到Q代码和聚合是一L。具体如何区别,可能只能用语义来区分了?br>
3、依?br>

依赖:
指C5可能要用到C6的一些方法,也可以这栯Q要完成C5里的所有功能,一定要有C6的方法协助才行。C5依赖于C6的定义,一般是在C5cȝ头文件中包含了C6的头文g。ROSE对依赖关pM产生属性?br>
注意Q要避免双向依赖。一般来_不应该存在双向依赖?br>
ROSE生成的代码如下:
虽然ROSE不生成属性,但在形式上一般是A中的某个Ҏ把B的对象作为参C?假设A依赖于B)。如下:

#include "B.h"

class A


...{

void Func(B &b);

}
那依赖和聚合\l合、关联等有什么不同呢Q?br>
兌是类之间的一U关p,例如老师教学生,老公和老婆Q水壶装水等是一U关pR这U关pL非常明显的,在问题领域中通过分析直接p得出?br>
依赖是一U弱兌Q只要一个类用到另一个类Q但是和另一个类的关pM是太明显的时候(可以说是“uses”了那个类Q,可以把q种关系看成是依赖,依赖也可说是一U偶然的关系Q而不是必然的关系Q就?#8220;我在某个Ҏ中偶然用C它,但在现实中我和它q没多大关系”。例如我和锤子,我和锤子本来是没关系的,但在有一ơ要钉钉子的时候,我用C它,q就是一U依赖,依赖锤子完成钉钉子这件事情?/p>
l合是一U整?部分的关p,在问题域中这U关pd明显Q直接分析就可以得出的。例如轮胎是车的一部分Q树叶是树的一部分Q手脚是w体的一部分q种的关p,非常明显的整?部分关系?br>
上述的几U关p(兌、聚?l合、依赖)在代码中可能以指针、引用、值等的方式在另一个类中出玎ͼ不拘于Ş式,但在逻辑上他们就有以上的区别?br>
q里q要说明一下,所谓的q些关系只是在某个问题域才有效,d了这个问题域Q可能这些关pd不成立了Q例如可能在某个问题域中Q我是一个木匠,需要拿着锤子dz,可能整个问题的描q就是我拿着锤子怎么钉桌子,钉椅子,钉柜子;既然整个问题是描述q个Q我和锤子就不仅是偶然的依赖关系了,我和锤子的关pd得非常的紧密Q可能就上升为组合关p(让我H然惌v武侠说的剑不离w,剑亡Z...Q。这个例子可能有点荒谬,但也是ؓ了说明一个道理,是关系和类一P它们都是在一个问题领域中才成立的Q离开了这个问题域Q他们可能就不复存在了?br>
4、泛化(l承Q?br>

泛化关系Q如果两个类存在泛化的关pL׃用,例如父和子,动物和老虎Q植物和q?br>ROSE生成的代码很单,如下Q?/p>

#include "C11.h"


class C12 : public C11


...{

};
5、这里顺便提一下模?br>

上面的图对应的代码如下:

template<int>

class C13


...{

};

q里再说一下重复度Q其实看完了上面的描qC后,我们应该清楚了各个关p间的关pM及具体对应到代码是怎么LQ所谓的重复度,也只不过是上面的扩展Q例如A和B有着“1对多”的重复度Q那在A中就有一个列表,保存着B对象的N个引用,是q样而已?br>
好了Q到q里Q已l把上面的类囑օp说完了Q希望你能有所收获了,我也费了不少工夫啊(d、生成代码、截图、写到BLOG上,唉,一头大汗)。不q如果能让你d理解UMLcd的这些关p,也值得了?)

]]>- 中文xml FQAhttp://www.shnenglu.com/mzty/archive/2006/01/06/2469.html梦在天梦在天Fri, 06 Jan 2006 07:44:00 GMThttp://www.shnenglu.com/mzty/archive/2006/01/06/2469.htmlhttp://www.shnenglu.com/mzty/comments/2469.htmlhttp://www.shnenglu.com/mzty/archive/2006/01/06/2469.html#Feedback1http://www.shnenglu.com/mzty/comments/commentRss/2469.htmlhttp://www.shnenglu.com/mzty/services/trackbacks/2469.html阅读全文

]]> - uml中类对象间的关系http://www.shnenglu.com/mzty/archive/2006/01/03/2375.html梦在天梦在天Tue, 03 Jan 2006 06:17:00 GMThttp://www.shnenglu.com/mzty/archive/2006/01/03/2375.htmlhttp://www.shnenglu.com/mzty/comments/2375.htmlhttp://www.shnenglu.com/mzty/archive/2006/01/03/2375.html#Feedback0http://www.shnenglu.com/mzty/comments/commentRss/2375.htmlhttp://www.shnenglu.com/mzty/services/trackbacks/2375.html阅读全文

]]> - uml 基本概念http://www.shnenglu.com/mzty/archive/2005/12/30/2262.html梦在天梦在天Fri, 30 Dec 2005 02:01:00 GMThttp://www.shnenglu.com/mzty/archive/2005/12/30/2262.htmlhttp://www.shnenglu.com/mzty/comments/2262.htmlhttp://www.shnenglu.com/mzty/archive/2005/12/30/2262.html#Feedback1http://www.shnenglu.com/mzty/comments/commentRss/2262.htmlhttp://www.shnenglu.com/mzty/services/trackbacks/2262.html
1.1 Z么要建模
建立大厦和徏立狗H的区别是徏讄H不需要设计。要生合格的Y件就要有一套关于体pȝ构、过E和工具的规范?
建模的定义:建模是对现实的简化?
建模的目标:
1Q模型帮助我们按照实际情冉|按照我们所需要的样式对系l进行可视化?
2Q模型允许我们详l说明系l的l构和行为?
3Q模型给Z个知道我们构造系l的模板?
4Q模型对我们的决{进行文化?
建模是把复杂的pȝ变成的pȝQ采用“各个击破”的原则逐一解决?
1.2 建模原理
1Q选择创徏什么模型很重要Q模型要反映你难于处理的开发问题?
2Q模型要在不同的_ֺU别上来表示。你可以Ҏ观察的角色和观察的原因来选择_ֺ?
3Q徏造模型要和现实相q?
4Q重要的pȝ需要用一l独立的模型d理。在面向对象的Y件体pMQؓ了理解系l的体系l构Q你需要几个互补和q锁的视图:用例图、设计视图、进E视图、实现视囑֒实施视图?
1.3 面向对象的徏?
面向法的徏模在需求发生变化或者系l增长后变得难以维护?
面向对象的徏模把对象和类作ؓ其主要构造块。例如,在三层结构中Q我们可以在用户接口层、中间层和数据库层中扑ֈ你想要的对象?
2 UML介绍
2.1 概述
UML可以对Y件密集型pȝ的制品进行可视化、详q、构造和文档化。最好把它用于以用况Q用例)为驱动、以体系l构Z心、跌代及增量的过E中?
UML是一U语aQ它是一U可视化的语aQ它是一l图形符受它可用于详l描q。它又是一U构造语aQ可以直接生成代码。用Rational XDE可以实CUML到C#Q或者从C#到UML的双向工E?
2.2 UML的概忉|?
学习建模的三个要素:UML的基本构造块、这些构造块攑֜一L规则、一些运用于整个UML的公共机制?
UML中由一些四U事?
1Q结构事?Q-Q?cR接口、协作(它是一个交互,它是׃l共同工作以提供某协作行为的角色和其它元素构成的一个群体。)、用例、主动类Q至拥有一个进E或者线E,其元素的行ؓ可以和其它元素的行ؓq发Q、构Ӟ如COM+和Java BeanQ、节炏V?
2Q行Z?Q-Q?交互、状态机Q描qC一个对象或者一个交互在生命期内响应事g所l历的状态序列)?
3Q分l事?Q-Q??
4Q注释事?Q-Q?注解
UML中的四种关系
1Q依?Q-Q?两个事物间的语义关系
2Q关?Q-Q?是一U结构关p,如聚?
3Q泛?Q-Q?一?Ҏ关系
4Q实?Q-Q?用在两种地方Q接口和实现他们之间的类和构件之_用例和实C们的协作之间?
UML中的?
1Q类?Q-Q?pȝ的静态状态图Q包含主动类的类囄除系l的静态进E视图?
2Q对象图
3Q用例图
4Q顺序图
5Q协作图
6Q状态图
7Q活动图 Q-Q?对象间的控制程
8Q构件图
9Q实施图
2.3 体系l构
我们?个互联的视图来描qY件密集型pȝ的体pȝ构:
1Q系l的用例?
2Q系l的设计视图 Q-Q?静态方面由cd和对象图描述Q动态方面由交互图、状态图和活动图描述?
3Q系l的q程视图 Q-Q?包含了Ş成系lƈ发和同步机制的线E和q程?
4Q系l的实现视图 Q-Q?主要针对pȝ发布的配|管理?
5Q系l的实施视图
2.4 软g开发生命周?
用况驱动
以体pȝ构ؓ中心
跌代q程 Q-Q?涉及Cq串可执行发布的理?
软g开发生命周期的四个阶段Q?
初始
l化
构?
UM

]]> - C++中DOM写XML http://www.shnenglu.com/mzty/archive/2005/12/29/2225.html梦在天梦在天Thu, 29 Dec 2005 01:48:00 GMThttp://www.shnenglu.com/mzty/archive/2005/12/29/2225.htmlhttp://www.shnenglu.com/mzty/comments/2225.htmlhttp://www.shnenglu.com/mzty/archive/2005/12/29/2225.html#Feedback8http://www.shnenglu.com/mzty/comments/commentRss/2225.htmlhttp://www.shnenglu.com/mzty/services/trackbacks/2225.html阅读全文

]]> - uml中文FQAhttp://www.shnenglu.com/mzty/archive/2005/12/24/2048.html梦在天梦在天Sat, 24 Dec 2005 06:51:00 GMThttp://www.shnenglu.com/mzty/archive/2005/12/24/2048.htmlhttp://www.shnenglu.com/mzty/comments/2048.htmlhttp://www.shnenglu.com/mzty/archive/2005/12/24/2048.html#Feedback0http://www.shnenglu.com/mzty/comments/commentRss/2048.htmlhttp://www.shnenglu.com/mzty/services/trackbacks/2048.html阅读全文

]]>
72ŷþþþôƽ|
ھƷþþþӰԺձ|
þavСݲ|
þþƷ99Ӱ|
þ99ۺϾƷ|
˾þþƷһ|
þþþþëƬѲ|
˾Ʒþö|
ۺϾþþƷ|
þþƷAV|
þ99Ʒ99þ6|
ɫۺϾþ|
Ӱ7777þþƷ|
ž99Ʒþþþþ|
þþƷ|
þѿaëƬ|
þþƷëƬѹۿ|
91Ʒþþþþ|
þҹӰ|
vaĻþ|
þerƵᆱƷ|
һþöۺ|
һ˾þþƷ|
þþƷƷ|
һɫþ88Ʒۺ|
ɫ999þվ|
ƷþþþþþþþӰԺ|
þþƷAVũ帾Ů
|
ƷþĻ|
һþ㽶|
91þùۺϾƷ|
þӰ|
91Ʒþþþþ|
97Ʒ˾þþô߽
|
ۺϾþĻ|
avɫۺϾþavɫۺ|
ѹ99þþ㽶|
ŷһþ|
Ůþþþþ|
þۺۺϾþ97ɫ|
þùƷ77777|