• 程序开发基础学习一(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

  • 相关阅读:
    构建之法阅读心得(九)
    构建之法阅读心得(八)
    构建之法阅读心得(七)
    构建之法阅读心得(六)
    构建之法阅读心得(五)
    构建之法阅读心得(四)
    一组阶段小记之读构建之法(三)
    暑期学习总结
    软工综合实践 学习笔记02
    软工综合实践 学习笔记01
  • 原文地址:https://www.cnblogs.com/fengju/p/6174343.html
Copyright © 2020-2023  润新知