前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#设计原则——迪米特原则

C#设计原则——迪米特原则

原创
作者头像
用户10053120
发布2022-09-19 14:23:32
2130
发布2022-09-19 14:23:32
举报
文章被收录于专栏:C# 设计原则

一、定义

  1. 创建一个类时要采用的一套原则。
  2. 要求一个对象对其他对象有最少的了解。
  3. 降低类之间的耦合。

二、代码

违反迪米特原则的代码:

代码语言:javascript
复制
   //电脑:关机的行为、
        public class Computer
        {
            //1.保存当前程序
            public void SaveCurrentTask()
            {
                Console.WriteLine("保存当前程序");
            }
            //2.关闭屏幕
            public void CloseScreen()
            {
                Console.WriteLine("关闭屏幕");
            }
            //3.关闭电脑
            public void ShutDown()
            {
                Console.WriteLine("关闭电脑");
            }
        }
    //人:调用电脑关机的行为
        public class Person
        {
            public  void CloseComputer(Computer c)
            {
                //不符合迪米特原则
                c.SaveCurrentTask();
                c.CloseScreen();
                c.ShutDown();
            }
        }

迪米特原则的代码

代码语言:javascript
复制
   //电脑:关机的行为、
        public class Computer
        {
            //1.保存当前程序
            public void SaveCurrentTask()
            {
                Console.WriteLine("保存当前程序");
            }
            //2.关闭屏幕
            public void CloseScreen()
            {
                Console.WriteLine("关闭屏幕");
            }
            //3.关闭电脑
            public void ShutDown()
            {
                Console.WriteLine("关闭电脑");
            }
            public void CloseComputer()
            {
                this.SaveCurrentTask();
                this.CloseScreen();
                this.ShutDown();
            }
        }
    //人:调用电脑关机的行为
        public class Person
        {
            public  void CloseComputer(Computer c)
            {
                //符合迪米特原则
                c.CloseComputer();
            }
        }

三、只和直接朋友进行通信

  1. 成员对象
  2. 方法参数
  3. 方法返回值
  4. 注意:出现在局部变量中的类,不是直接朋友。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档