【每天进步一点】C#对象之间的关系

一、简介

类是对象的集合,展示了对象的结构以及与系统的交互行为。类主要有属性(Attribute)和方法(Method)构成,属性代表对象的状态,如果属性被保存到数据库,此称之为“持久化”;方法代表对象的操作行为,类具有继承关系,可以继承于父类,也可以与其他的Class进行交互。

二、 对象之间的关系

1.(树形)继承–>实现(父类–子类) 接口–>实现
2. (平行)由强到弱的关系:依赖–>关联–>聚合–>组合

三、实例说明

1.依赖关系(可以使用你,偶然的)

 /// <summary>
    /// 类之间的关系(1):依赖关系(Dependence)
    /// 1. 关系特点:一个类中,“使用” 到了另一个类。这种 “使用” 是临时的、较弱的关系。
    /// 2. 典型应用:一个类作为另一个类中方法的参数,或者这个方法的局部变量。
    /// </summary>
    public class ClassA
    {
        public void Method1(ClassB cb)
        {
            cb.Test();
        }
        public void Method2()
        {
            ClassB cb = new ClassB();
            cb.Test();
        }
    }

    public class ClassB
    {
        public void Test() { }
    }

2.关联关系(需要使用你,长期的)

   /// <summary>
    /// 类之间的关系(2):关联关系(Association)
    /// 举例:比如客户和订单之间就是一种关联关系。一个对象和另一个对象是有关联的。但是这种关系是客观的关系,而非组成关系。
    /// 
    /// 1. 关系特点:一个类A中,“使用” 到了另一个类B。这种 “使用” 是长期的、较强的关系。
    /// 2. 典型应用:一个类作为另一个类中“成员”。可以是一对一,一对多,(集合对象)
    /// 3. 组合形式:单向,双向,自关联
    /// </summary>
    public class ClassA
    {
        private ClassB classB;


    }

    public class ClassB
    {
        private List<ClassA> caList;

        public void Test() { }
    }

    /// <summary>
    /// 自关联
    /// </summary>
    public class ClassC
    {
        private ClassC classc;
    }

3.聚合关系(团队的成员,大家关系比较紧密。但是并不是非你不可!)

    /// <summary>
    /// 类之间的关系(3):聚合关系(Aggregation) 是关联关系的一种特例。
    /// 
    /// 举例:汽车和发动机?轮胎?/  电脑和键盘?鼠标...
    /// 
    /// 1. 关系特点:也表示一个对象和另一个对象有关联。但是对象之间是整体与部分的关系!整体和部分可以分开!
    /// 
    /// 2. 典型应用:一个对象作为另一个类的《成员》。
    /// 
    /// 3. 组合形式:通过构造方法或者普通方法为成员赋值。对象是从外面创建的,然后传递进来。
    /// </summary>
    /// 整体
    public class Computer
    {
        private Keyboard keyboard;

        public Computer() { }
        public Computer(Keyboard keyboard)
        {
            this.keyboard = keyboard;
        }

        public void SetKeyboard(Keyboard keyboard)
        {
            this.keyboard = keyboard;
        }
    }
    /// <summary>
    /// 部分
    /// </summary>
    public class Keyboard
    {
        public void Click() { }
    }

    public class TestClass
    {
        private Computer myComputer = new Computer();
        private Computer yourComputer = new Computer(new Keyboard());

        public void Test()
        {
            myComputer.SetKeyboard(new Keyboard());
        }
    }

4、组合关系(密不可分的,关系非常紧密。谁也不能缺少。)

    /// <summary>
    /// 类之间的关系(4):组合关系(Compostion) 
    /// 
    /// 举例:人和手、脚
    /// 
    /// 1. 关系特点:也表示一个对象和另一个对象有关联。但是对象之间是整体与部分的关系!“只不过” 整体和部分“不”可以分开!并且整体和部分共生死!
    /// 
    /// 2. 典型应用:一个对象作为另一个类的《成员》。
    /// 
    /// 3. 组合形式:通过构造方法“内”或者普通方法“内”直接创建。对象是从内部创建的,不用传递。这点是区别与聚合。
    /// </summary>
    public class Person
    {
        private Hand hand;

        public Person()
        {
            this.hand = new Hand(); //代表,人出生就有手
        }      
      
    }
    /// <summary>
    /// 部分
    /// </summary>
    public class Hand 
    {
        public void Coding() { } 
    }  

四、结尾

每天进步一点,早日成为大佬~
下期讲设计模式

posted @ 2019-12-17 21:45  Skrr  阅读(531)  评论(0编辑  收藏  举报