美文网首页
设计模式之迪米特法则

设计模式之迪米特法则

作者: Matsn | 来源:发表于2021-09-18 18:43 被阅读0次

设计模式之迪米特法则

迪米特法则(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; }
    }

总结:

  • 去掉内部依赖,School不要直接管理Student, 也不关心细节
  • 降低访问修饰符,避免暴漏过多细节
  • 字段变属性:为了保护数据安全,也可以扩展逻辑控制。

相关文章

  • 迪米特法则

    个人博客原文:迪米特法则 设计模式六大原则之五:迪米特法则。 简介 姓名:迪米特法则 英文名:Law of Dem...

  • 设计模式之迪米特法则

    设计模式之迪米特法则 迪米特法则(Law of Demeter) 定义:一个类对其它类知道的越少越好 一个对象应该...

  • [Code Design] 六大设计原则之`迪米特法则`

    六大设计原则之迪米特法则 定义 迪米特法则(Law of Demeter)又叫作最少知识原则(Least Know...

  • 设计模式六大原则--迪米特法则(Law of Demeter,

    参考书籍:设计模式之禅 --- 秦小波 迪米特法则(Law of Demeter, LOD)也称最少知识法则( L...

  • 设计模式之迪米特法则

    相关链接:0. 设计模式之六大原则总结1. 设计模式之单一职责原则2. 设计模式之里式替换原则3. 设计模式之依赖...

  • 设计模式---外观设计模式

    外观模式 标签(空格分隔): 设计模式 在设计模式中有一个法则叫迪米特法则(最少知识原则),它说的是什么呢? 一个...

  • 设计模式 - 迪米特法则

    如果两个类不必彼此之间直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个了类的某一个方...

  • 设计模式 -- 迪米特法则

    表述(降低耦合) 第一表述:一个对象应该对其他对象保持最少了解, 通俗的讲就是一个类对自己依赖的类知道的越少越好,...

  • 【设计模式】迪米特法则

    1 迪米特法则概述 迪米特法则来自于1987年美国东北大学(Northeastern University)一个名...

  • 《设计模式》——迪米特法则

    定义   其实《设计模式之禅》关于原则的部分,我最喜欢的就是《迪米特法则》没什么特殊原因,前段时间部门培训,让我出...

网友评论

      本文标题:设计模式之迪米特法则

      本文链接:https://www.haomeiwen.com/subject/vbtcgltx.html