设计模式之迪米特原则
来源:互联网 发布:手机淘宝怎么扫一扫 编辑:程序博客网 时间:2024/06/09 19:55
六大设计模式原则 之迪米特原则
迪米特原则又称为最少知识原则
一、定义
迪米特原则:指一个对象应该对于其他对象有最少的了解。
理解:简单来说一个类对自己所调用或者耦合的类有最少的了解,被调用的类内部实现与该类无关。
二、好处
可以有效的降低类之间的耦合度。
三、代码示例
我想大家都很熟悉,高三的时候因为课程紧张,尤其是一些所谓“学习狂人”(多为女生),经常以各种理由不上体育课,老师也不好说什么,只好每节课都认体育委员清点可以上课的人数,现在我们就来实现这一功能!
首先定义一个女生实体类,添加一个布尔指 判断是否可以上课
然后是体育委员类 用于判断该女生是否可以上课,并统计总量sum
再然后是老师类,实现叫体育委员清点人数的方法
最后是场景类
下面是结果:
报告老师,一共有12名女生无法参加体育课!
好,我们看看这段代码有问题吗?没有!有!
其实是有问题的,我们看老师这个类,他需要两个类来帮助实现,一个是女生,一个是体育委员,要叫体育委员清点人数,那么体育委员类不可少,但是女生呢,老师不需要自己去清点,那么为什么老师要耦合女生呢,这就有一些问题了;还有,在老师类中我们共调用了2个体育委员的方法,这使我们对于体育委员类的了解更多了,这样也不是我们这个原则所提倡的,所以这段代码可以进行优化:
首先还是女生类,没有变化,也不可能有变化
接着是体育委员类,我们将它的所有方法都设置为private的,只有一个方法设置为public的,用于老师的调用。
然后是老师类,现在老师类就干净了
最后还是场景类,我们将女生的初始化放在场景类中,由体育委员来寻找女生,这与老师无关
好了,我们运行一下:
报告老师,一共有12名女生无法参加体育课!
- 我们取消了老师对于女生的联系,降低了耦合度
- 我们减少了老师对于体育委员的了解,只调用了一个方法
- 整个设计更符合面向对象的设计
- 设计模式之迪米特原则
- 设计模式之原则
- 设计模式之原则
- 设计模式之原则
- 设计模式之原则
- 设计模式之原则
- 设计模式之设计原则
- 设计模式之设计原则
- 设计模式之设计原则
- 设计模式之设计原则
- 设计模式之设计原则
- 设计模式之设计原则
- 设计模式之设计原则
- 设计模式之设计原则
- 设计模式之设计原则
- 设计模式之设计原则
- 设计模式原则之四:迪米特法则
- 设计模式六大原则之迪米特法则
- 强制ie7兼容模式
- java Wep中的web.xml的初始化参数
- asp.net中的type="text/css"
- abstract class 和interface区别
- CreateThread用法
- 设计模式之迪米特原则
- linux压缩文件总结
- 多版本Subversion服务器在同一Windows系统中共存
- 关于VMware6.5下Ubuntu9.04安装VMware tools的一些问题总结
- 在 CpropertySheet 添加 最大化框 最小化框
- 很好的博客程序
- linux 查看tomcat日志文件
- Qt Labs
- spy++让你走出迷雾