UML——类图(二)

        强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan 

        最近在学习设计模式,设计模式共23个,现在还是小菜鸟的我看了那些代码根本不懂是什么意思,还好,每个设计模式都对应着相应的类图,啊哈,看了图之后再去理解设计模式是解决什么问题的果然简单了很多,类图是UML图应用的最多的图,在看刘伟老师的csdn时候看到一段话,很好的展现了类图的应用广度,“If someone were to  come up to you in a dark alley and say,'Psst,wanna see a UML diagram'that diagram would probably be a class diagram.The majority of UML diagram i see are class diagrams."类图可以很好的帮助人们理解系统,可以作为编程的模型。

【类图分类】

      在第一次学习类图的时候,我理解到的类图就是简简单单的抽象出来的一个名词,其实不然,类图也可以再分为三种:

       实体类:该种类就是在描述系统的时候抽象出来的名词,实体类主要是作为数据处理和业务逻辑处理层面上存在的类别;实体类的主要职责是存储和管理系统内部的信息,实体类通常都是永久性的有时甚至在系统的整个生存期都需要。它来源于系统需求中的名词,例如,用户、操作员等。

       边界类:用于对外部用户和系统之间的交互抽象出来的类,主要包括界面类。例如在机房收费系统中的用户登录界面等。

       控制类:控制类主要体现程序的执行逻辑,主要是由动词和名词构成的动宾结构。例如在机房收费系统中的用户充值、用户注册等类。

【依赖三方式】

        类不是孤立存在的,类与类之间的关系可以很好的表示系统各个功能之间的联系,其中一种类之间的关系是依赖,依赖分三种方式:

        第一种方式是将一个类的对象作为另一个类中方法的参数

 

Public class Driver
{
       public void drive(Car car)   //将Car类的对象作为Driver类中的参数
          {
             car.move;
          }
}
public class Car
{
      public void move()
         {
         }
}

 

        第二种方式是在一个类的方法中将另一个类的对象作为其局部变量

public class Point 
{
           public int x;          //x轴方向的
           public int y;          //y轴方向的
 
}
public class RectAngle
{
           public Point p1,p2;   //p1,p2为矩形的2个对角
public double S         //s为面积
    {                
           get;set;
    }
public doubel Getmianji()
   {
            return  Math.Abs(p2.y-p1.y)* Math.Abs(p2.x-p2.x)     //计算矩形面积
   }
}

 

        第三种方式是在一个类的方法中调用另一个类的静态方法

 

public class xiaoming
{
       public static eatdinner()
         {
          .......
          }
}
public class eat
{
         eatdinner eat=new eatdinner();    //调用小明类中的静态eatdinner()方法
}

 

 

 

 

 

【类图实现】

            前面说到了类图可以作为编写代码的模型,我们都知道类由三个要素组成,即名称、属性、方法,我刚学习了C#语言编程,假如给一个下面的类,该如何用C#来实现呢?一起看一下图和代码就一目了然了!

                                  

 

<span style="font-size:18px;">Public class Person
{
     private int age;             //定义int类型的变量age
     private name;                //定义一个变量name
     public void action()         //声明一个action方法
        {
             该方法执行的操作代码
        }
}</span>

【总结】

       第一次验收的时候师父让我尝试着去用代码实现,当时一点方向都没有,今天学习了C#,自己写一个类的代码感觉so easy,一个系统就是由这些点点滴滴积累联系起来的,将自己所需要的功能抽象成类,依据类与类之间的联系将散的代码连接成一个代码段,再整合成一个系统代码!代码的世界真是神奇!

 

 

 

 

 

评论 36
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值