zoukankan      html  css  js  c++  java
  • 针对UML的一次很肤浅的学习

    /*
         工作有一段时间,在公司中也经常看到这样那样的UML文档。而我--一个半路出家的程序员,面对编程世界很多东西都感到是那么的神奇(因为陌生)。当然 UML也不例外....
         今天利用工作空余时间,学习一下UML到底是怎回事。 以为也曾看过一些UML的资料,但是你们的描述过于书面我没怎么理解,今天我是咬起牙来学习的(书到用时方恨少)。

        UML据说很强大,功能很丰富。但对于UML我现有的认识是:用图像来表达设计思路或程序设计结构。换一种说明:用图形来表达或者沟通自己的想法。
       说道UML就不得不提到泛化、继承、组合之类的,今天我的笔记也主要讲解这方面的东东。

        一、泛化 vs继承。正如网上若干资料中提到的一样,他们是从正反两个方向描述东东。所以在UML图形中,泛化和继承的表现形式是一样的。
              代码可以这样表示:
                          class A;//不要扔砖头砸我:这个类的定义写法是错误的
                          class  B:A;
            我们可以这样说:B继承了A  ;A是B的泛化。看图→
                

     

      二、依赖。一个类中的某些功能(方法)依赖于另一个类

              代码可以表示为:
                  Class A;
                   Class B
                         {
                           void Do()
                               {    //可能存在的B类处理代码
                                      B.Do();//调用B中的方法,来完成A类的功能
                                       //可能存在的B类处理代码

                                }
                         }

          从上面的代码很容易就能看出,B依赖于A。我的疑问:有没有这样的情况:A依赖于B,B依赖于A(我猜这种情况是成立的)
          看图→

     

        三、关联。 这个感觉容易和依赖混淆。先了解关联后,再来讲他们的却别:

               先用代码来表示:
                              class A;
                              class B
                                  {
                                      A a1=new A1();
                                      a1.Do();//A类的方法,即 在B类中可以反问使用A的可访问元素
                                    //或者,如下:
                                      privite A test_Property;//A作为B的一个属性
                                  }

            区分依赖和关联:  依赖,一个类中的方法或功能必须依靠另一一个类的方法来完成,即一个类的变化会引起另一个类的变化
                                           关联, 一个类中,知道并可以使用另一个类的课访问元素,常见形式为一个类为属性的形式出现在另一类中

     
               其中,关联又分为单向关联和双向关联。双向就是相互知道彼此
        看图→
     
     

       四、聚合、组合。 首先要明了:聚合与组合是特殊的关联,不然等下你会疑惑怎么关联和聚合如此相似!
     
     然后再来看看聚合和组合聚合的例子→

    基本聚合例子:公司和员工的关系,开 了一个新公司,但不一定要招员工,员 工可以单独存在.

    组 合聚合例子:当人出生的时候,同 时人就有了心脏,心脏脱离了人就没有意义了.

     记忆口诀:(他们的区别主要在于一个是实心菱形,一个事空心菱形)。

                             聚在一起肯定有空隙,就像聚会时有空位一样,所有事空心 (有聚就有散,所以到头来都是一场‘空’)

                            为了将空白填满才组合在一起 ,所以组合是实心。

                       简单点:有聚有散,终为空;先组后和,才结‘实’

       看图(这张图是网上下载的,陈程《大话设计模式》中的图) →

     

      

  • 相关阅读:
    XSLT语法 在.net中使用XSLT转换xml文档示例
    .Net那点事儿系列:System.IO之Stream
    javaWeb 控制层互相调用的两种方案
    eclipse 被选中的内容,无法被输入的新内容替换掉
    notepad++ 多行编辑(列编辑)
    Ajax & PHP 边学边练 之四 表单
    Ajax & PHP 边学边练 之五 图片处理
    Ajax & PHP 边学边练 之二 实例
    Ajax & PHP 边学边练 之一 Ajax基础
    Ajax & PHP 边学边练 之三 数据库
  • 原文地址:https://www.cnblogs.com/paulxie/p/2045525.html
Copyright © 2011-2022 走看看