迪米特原则 (Law of Demeter LoD): 一个对象应该对其他对象保持最少了解, 又叫最少知道原则,
- 降低类与类之间的耦合度
老板需要做一个做直播窗口,了解各个直播平台接口的价格,老板找到经理,让经理统计好后把结果告诉老板
直播接口信息
public class LiveStreaming{
}
经理类
public class Manager {
public void statisticalMagnitude(List<LiveStreaming> liveStreamingList) {
System.out.println("目前改接口价格如下: " + liveStreamingList);
}
}
老板类
public class Boss {
public void viewStatistics(Manager manager) {
ArrayList<LiveStreaming> liveStreamingList = new ArrayList<>();
for (int i = 0; i < 10; i++) {
liveStreamingList.add(new LiveStreaming());
}
manager.statisticalMagnitude(liveStreamingList);
}
}
调用代码
public static void main(String[] args) {
Boss boss = new Boss();
Manager manager = new Manager();
boss.viewStatistics(manager);
}
至此,功能实现了,但老板也跟第三方直播接口交流了,两个类耦合, 根据迪米特原则, 老板只需要结果,不需要和第三方进行交流,经理干就可以了,进行修改
经理
public class Manager {
public void statisticalMagnitude() {
List<LiveStreaming> liveStreamingList = new ArrayList<>();
for (int i = 0; i < 10; i++) {
liveStreamingList.add(new LiveStreaming());
}
System.out.println("目前改接口价格如下: " + liveStreamingList);
}
}
老板
public class Boss {
public void viewStatistics(Manager manager) {
manager.statisticalMagnitude();
}
}
过犹不及,适量最好, 软件设计,不能形成强迫症, 需要随机应变