小说网 找小说 无限小说 烟雨红尘 幻想小说 酷文学 深夜书屋

程序开发基础学习一(uml设计)

        今天到新公司第二天,复习一下uml设计,总结一下。写代码就如写文章,需要一个大概的纲领和结构。uml图有两种类别范畴,结构图和行为图。通过uml图可以很清晰看出类的成员属性,方法,类与类之间的关系。把类的基本属性和类与类的基本关系梳理清楚了。才可以写出易扩展,更稳定的程序。同时其他别人也可以通过uml图很清晰的看出代码设计结构,类与类之间的关系。下面说一下常用的几种关系图。

        1、继承关系


很明显,BlackDuck和RedDuck是Duck的子类。

        2、聚合

聚合的意思是说Wheel类离开Car类可以独立存在,为什么这样说呢?首先汽车都需要轮子,当然了未来的汽车不好说。。。。。。。,但是买轮子的店里,轮子可以独立存在。这样说有点模糊,看下代码。

class car
{
public:
	wheel theWheel;
};

class wheel
{
	
};


        3、组合


对于组合的理解就是说,Duck和DuckEgg有相关的时序性问题,比如说鸭子蛋还在鸭子肚子里,还没生出来。鸭子就死了,这时鸭子在死亡的时候就要将鸭子蛋销毁了,这个状态下的鸭子蛋是不能独立存在的。而超市的鸭蛋和鸭子的关系就可以表示为聚合。看代码。

class Duck
{
public:
	DuckEgg theEgg;

};

class DuckEgg
{

};

        组合是表示一种整体和部分的关系,同样为鸭子和鸭蛋,但不同状态下,他们的关系就不一样。这也同时说明具体问题具体分析,我写这个总结只是想说明白uml常用几个序列图而已。

        4、依赖


依赖是一种比较弱的组合关系,比如说汽车要加汽油,调用汽油的一种方法,这时就要能找到Gas这个类。代码如下:

#include "Gas.h"

class car
{
public:
	SetCarGasVolue(Gas theGas);
};

        5、关联


单向关联

单项关联表示player知道dog的存在,player可以调用dog的所有属性和方法。并且没有生命周期的依赖,意思说player知道dog的存在,但是不负责dog的构造和销毁。具体代码表示为player类里包含dog的指针引用。代码如下:

class player
{
public:
	dog* m_dog;
};

class dog
{

};

双向关联

双向关联就是player和dog相互可以调用对方的所有公共属性和方法。player和dog相互认识,代码表现为player和dog相互有对方的指针引用。代码如下:

class player
{
public:
	dog* m_dog;
};

class dog
{
public:
	player* m_ower;
};

        6、时序图

时序图主要表示一个过程的图,上图是第一个步骤是玩家将自己信息发到gameserver,第二步gameserver去db查询,第三步db返回gameserver结果,gameserver验证后第四部返回给客户端结果。

        常用的uml图就这些,用类图和序列图可以表达自己的设计思路即可。

参考文章:http://blog.csdn.net/dylgsy/article/details/1076044

posted on 2011-07-14 16:06  王峰炬  阅读(199)  评论(0编辑  收藏  举报

导航