• 【每天进步一点】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() { } 
        }  
    

    四、结尾

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

  • 相关阅读:
    实验证明:ObjectiveC++ 完美支持 ARC
    用 Java 实现的日志切割清理工具
    数字电视,方便了谁
    商品EAN13条码的生成
    关于错误“Cannot connect to the Citrix MetaFrame server.Can't assign requested address”的解决方法
    "加载类型库/dll时出错" 的解决方法
    解决连接SQL Server 2000的TCP/IP错误的Bug
    电脑自动关机之CPU风扇烧坏
    winrar 8 注册方法
    电脑死机之CPU温度过高
  • 原文地址:https://www.cnblogs.com/LJF111/p/12304844.html
Copyright © 2020-2023  润新知