00:00
来吧,朋友们,我们来改进一把,那既然要改进,首先我们谈一下改进的一个思路,同学们看我的思路这样子的,前面设计的问题在于score manage中college employ并不是他的直接朋友,我们刚才分析了,按照迪迷的法则呢,应该避免那种出现啊,出现这种非直接朋友的耦合,好,那现在改进的方案我就直接写代码了啊,那怎么改呢?来,朋友们有针对性的进行改进。同样道理,我在。这个diter这个包包下面呢,我们再建一个包。叫improve就改进。好,那为了改进改进,我肯定不会完全重写是吧,我把这个复制一下。复制过后粘贴到我们这边来,我就直接在这改了。好,打开它吧,那问题问题其实就是在这段代码嘛。是不是就这段代码。而这段代码里面,它之所以大家要分析,它之所以要出现这一个college,这个employ,是因为你要去要把这个学院的员工。
01:09
要把学院员工的信息输出来,是不是,那这样子我们可不可以这样想把这一段代码。直接放在我们college manager这个类里面,这个这事不就完事了吗?明白我的意思吧,好,思路已经有了,来吧,朋友们,那也就是说这段代码我们要掐走。呃,把哪个代码拿走呢?把这段代码拿走,这个分析问题已经已经出来了啊,那这这这个我们不要了,我们分析在这里。将什么呢?将输出。将获取啊获取。或将这样写啊,将输出学院。的员工。员工的方法,方法封装到封装到哪里,封装到college manager中,这就是我们说最小知道原则,就你怎么做的,你不要告诉我,你不要在我的这里面写。
02:06
你自己该完成什么事,你自己去做就可以了,你不要你不要让我知道你是怎么做的,大家是不是这这这有点体会了。体会这句话啊。就是被以类的类,不管多复杂,都尽量将这个逻辑封装在类的内部,不除提供一个public布就行了,不要对外泄露任何信息,你看是不是就理解这句话了?我说了啊,这些法则都不难,一点都不难,但是你要把它点出来。因为你看你这写的这个代码,其实就是相当于说你在别人的这个类的方法里边,你你去完成自己的一个输出的一个信信息,那就没有意义吗?因此呢,我把这个卡走。卡走。那剪走过后,我把它放在哪里呢?各位朋友,显然我要把它放到这里面去,是不是这个道理?来写上另一个方法就行了,那我这写什么方法呢?来,同学们。输出输出。
03:02
学院。学院员工的信息。OK,那我写一段代码哈,呃,Public public void print print employee就可以了,我们这自己也写一个employee。Employee,好的,嗯,那我把刚才那个方法,我这一复制就行,大家看是不是我仍然是。获取到这个自己这个学我用我用sub,但是这个不是sub了啊,这个你用this了。因为我自己来获取嘛,This get,其实就就上面这个方法,你不用this也行,不要。啊,因为我这已经有这个方法了,Get学院所有员工,然后我我这边显示就完了,就把这段代码分装到这里面去,放到这里面去过后呢,我们这是不是还要输出啊,输出是不是用sub调一下就行了。Sub。就是。我们的sub对象点print哦就可以了。
04:05
好,这个代码就改完了,就那么一点。就这么一点,我说了啊,东西都不难,主要是一个理解和一个综合应用的问题。现在是不是又体会到我们把一个方法封装到自己那里面去,你该怎么做就自己怎么做,不要把你这个具体的实现方法写到别人这个类里面去,好,这个就是迪米特法则的一种观点,好,那这边代码需要变吗?不需要变化。不需要变化,好,我这里为了看到有区别,我这写一个叫做使用。使用第一。米特法则。的这个改进。好朋友们,我们我们来看看现在改进完了过后,对我们代码有没有什么影响,运行之来跑起来跑起来跑起来过后我们发现呢,没有任何问题,是不是一样的呀。只是这边改成了迪米特法则。
05:02
啊,学院员工信息还是零到九,学校总部员工信息还是零到四,没有任何问题,好同学们,那通过这个小案例呢,通过这个小案例,我们就把迪米特法则的一个精髓给大家讲到这里了,啊,东西都不难哈,都不难,这后面我们综合应用的时候还会还会提到这些相应的法则。好,那关于迪米特法则的这个改进方案,我们就先给大家聊到这里。
我来说两句