e媒网络

一切皆可能 e媒网络 http://www.eMay.net

博客园 首页 新随笔 联系 订阅 管理

第一种情况:依赖与关联,双向存在

UML类图:

代码参考:

using System;

namespace InterdependDemo
{
    class SchoolInfo
    {
        private StudentInfo studentInfo;
        private TeacherInfo teacherInfo;
        public string SchoolName = "西安航天技师学院";
        public StudentInfo StudentInfo
        {
           
            set
            {
                studentInfo = value;
            }

        }
        public TeacherInfo TeacherInfo
        {
           
            set
            {
                teacherInfo = value;
            }

        }

        public void ShowInfo()
        {
            studentInfo.ShowInfo(this);
            teacherInfo.ShowInfo(this);
        }

    }
    class StudentInfo
    {
        private string info;
        public string Info
        {
            set
            {
                info = value;
            }          
        }
        public void ShowInfo(SchoolInfo s)
        {
            Console.WriteLine(s.SchoolName + " " + info);
        }

    }
    class TeacherInfo
    {
        private string info;
        public string Info
        {
            set
            {
                info = value;
            }           
        }
        public void ShowInfo(SchoolInfo s)
        {
            Console.WriteLine(s.SchoolName + "  " + info);

        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            StudentInfo s = new StudentInfo
            {
                Info = "学生信息"
            };
            TeacherInfo t = new TeacherInfo
            {
                Info = "教师信息"
            };

            SchoolInfo sch = new SchoolInfo
            {
                StudentInfo = s,
                TeacherInfo = t
           };           
            sch.ShowInfo();
        }
    }
}

第二种情况:双向关联

参考代码:

using System;
namespace DoubleCorrelation
{    
    class Wife
    {
        public string wifeName;

        public Husband husband;
    }
    class Husband
    {
        public string husbandName;

        public Wife wife;
    }
    class Program
    {
        static void Main(string[] args)
        {
            Wife w = new Wife();
            w.wifeName = "王莎莎";
            Husband h = new Husband();
            h.husbandName = "张大伟";
            w.husband = h;
            h.wife = w;
            Console.WriteLine(w.wifeName+"的丈夫"+ w.husband.husbandName);
            Console.WriteLine(h.husbandName + "的媳妇" + h.wife.wifeName);
            Console.WriteLine("循环关联测试:"+h.wife.husband.wife.husband.wife.wifeName);
        }
    }
}

 

第三种情况:双向依赖<这个不建议>

posted on 2022-09-22 18:50  e媒网络技术团队  阅读(354)  评论(0编辑  收藏  举报