迪米特法则

本文介绍了软件设计中的迪米特法则及其应用实例,强调了类间联系的减少和降低耦合的重要性。此外还提及了依赖倒置原则与接口隔离原则,并探讨了一个贪吃蛇游戏的设计思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定义:迪米特法则又叫最少知识原则,指一个对象应对其他对象有尽可能少的了解,也就是说,一个模块或对象应尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立,这样当一个模块修改时,影响的模块就会越少,扩展起来更加容易。

自己理解:就是说类之间联系减少、降低耦合。

实例:

有个总公司,下面有一个分公司,现在要查询总公司分公司的员工id

 /// <summary>
    /// 总公司员工
    /// </summary>
    class Employee
    {
        public string id;
        public String ID
        {
            get { return id; }
            set { id = value; }
        }
    }
    /// <summary>
    /// 分公司员工
    /// </summary>
    class SubEmployee
    {
        private string id;
        public string ID
        {
            get { return id; }
            set { id = value; }
        }
    }

    /// <summary>
    /// 总公司管理员工
    /// </summary>
    class Commanymanager
    {
        public List<Employee> GetEmployee()
        {
            List<Employee> list = new List<Employee>();
            for (int i = 1; i < 10; i++)
            {
                Employee emp = new Employee();
                emp.ID = "总公司" + i;
                list.Add(emp);
            }
            return list;
        }

        public void pintAllEmppyee(Subcommanymanag sub)
        {
            sub.Shuchu();
            List<Employee> list = this.GetEmployee();
            foreach (var item in list)
            {
                Console.WriteLine(item.ID);
            }
        }
    }

    /// <summary>
    /// 分公司管理员工
    /// </summary>
    class Subcommanymanag
    {
        public List<SubEmployee> GetSubCommany()
        {
            List<SubEmployee> list = new List<SubEmployee>();
            for (int i = 1; i < 20; i++)
            {
                SubEmployee sub = new SubEmployee();
                sub.ID = "分公司" + i;
                list.Add(sub);
            }
            return list;
        }
        public void Shuchu()
        {
            List<SubEmployee> list = GetSubCommany();
            foreach (var item in list)
            {
                Console.WriteLine(item.ID);
            }
        }

    }

客户端:

Commanymanager comanger = new Commanymanager();
            comanger.pintAllEmppyee(new Subcommanymanag());
            Console.Read();

这样打印的话,就可以打印出总公司和分公司员工的ID

 

依赖倒置原则:抽象不应该依赖细节,也就是“面向接口编程”,而不是面向实现编程。

接口隔离原则:多个专门的接口要比一个单一的总接口要好,也就是说不要让一个单一的接口承担过多的职责。

总结:迪米特法则、依赖倒置、接口隔离这些原则应该都是比较好理解的,用的时候就要多考虑这些。

最近突发奇想:想写一个贪吃蛇的游戏:

定义类:

1.墙类

1.1显示墙得方法、属性

2.食物类

2.1显示食物的方法

2.2实现食物随机出现的方法

3.蛇

3.1显示蛇的方法/可以改变位置

3.2蛇运动的方法

3.2.1蛇是否吃到食物

3.2.2蛇是否撞墙

3.2.3蛇是否吃到自己

3.2.4蛇通关

 

键盘操作蛇运动

 

转载于:https://www.cnblogs.com/liu23/p/9043892.html

资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 以下是关于西林电气EH600LC系列变频器说明书的要点概述: 这是一份针对使用EH600LC系列变频器的用户编写的中文说明书,主要目的是指导用户如何正确地安装、操作以及维护该系列变频器。 从说明书的部分内容来看,变频器的基本参数如下:输入电压为三相AC380V,频率为50Hz或60Hz;输出频率范围是0Hz至650Hz;以EH640LC型号为例,输入电流为5.0A,输出电流为3.7A;该系列变频器可能涵盖1.2kW至40kW的可变功率范围。 变频器的型号标识为EH600LC系列,包含多个不同规格的产品,以满足多样化的应用需求。产品序列号显示为“SHENZHENXILINELECTRICTECHNOLOGIESCO.,LTD.MADEINCHINA”,表明该产品由西林电气公司生产,产地是中国深圳。 在操作功能方面,变频器具备如“JOG”(点动运行)等多种操作功能,还可能有频率、电流、电压等参数的设定与调整功能,同时提供了模拟信号接口、数字信号接口等多种控制接口。控制接口有FD.10、FB.11等代码标识,例如FB.11=0或FB.11=1可能表示数字输入信号的不同状态。 变频器设有多个LED指示灯,比如LED、F4.00、F6.01等,用于指示工作状态,包括电源状态、运行状态、故障状态等,也可能有用于显示特定故障或警告的LED指示灯。频率调节范围可在0.01Hz到20.00Hz、50.00Hz、650.00Hz等不同区间灵活调整,设定频率时可设置0.1s、0.5s、1.0s等不同的加速和减速时间。 说明书还对变频器的输入输出接口进行了说明,X1、X2、X3等标记代表不同的接口端子,其中包含用于24V直流电源输入的端子E24VX4CM。变频器可能支持通过DI(数字输入)信号等外部控制信号进
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值