设计模式之迪米特法则

2021-09-18  本文已影响0人  Matsn

设计模式之迪米特法则

迪米特法则(Law of Demeter)

定义:一个类对其它类知道的越少越好

迪米特法则应用的的设计模式: 门面模式,中介者模式。

 public class School
    {
        private List<Class> ClassList = new List<Class>();

        /// <summary>
        /// 迪米特法则,不暴漏细节
        /// </summary>
        public void Manage()
        {
            foreach (var c in ClassList)
            {
                c.Manage();
            }
        }

        /// <summary>
        /// 违反迪米特法则,学校直接管理了学生,暴漏了过多细节 
        /// </summary>
        public void ManageOther()
        {
            foreach (var c in ClassList)
            {
                foreach (var s in c.StudentList)
                {
                    Console.WriteLine($"[Id:{s.Id}, Name:{s.Name}");
                }
            }
        }
    }

    public class Class
    {
        private List<Student> _StudentList = new List<Student>();

        /// <summary>
        /// 开放数据访问,但不支持外部做数据更改, 
        ///  最好的做法是:不暴漏数据,只提供方法调用,不暴漏细节
        /// </summary>
        public List<Student> StudentList
        {
            get => _StudentList;
            private set { _StudentList = value;}
        }

        public void Manage()
        {
            foreach (var s in StudentList)
            {
                Console.WriteLine($"[Id:{s.Id}, Name:{s.Name}");
            }
        }
    }

    public class Student
    {
        public int Id { get; set; }

        public string Name { get; set; }
    }

总结:

上一篇 下一篇

猜你喜欢

热点阅读