当前位置:主页 > 自闭症治疗 >

java自闭设计模式

一、迪米特法则的核心思想

1. 定义

要求一个对象对其他对象保持最少了解,仅与"直接朋友"交互(包括:自身成员变量、方法参数、方法内创建的对象),避免连环调用(如a.getB.getC.doSomething)。

2. 代码示例

违反原则的调用链:

```java

// 错误示例:直接访问间接对象的方法

customer.getOrder.getItem.updateStock;

```

改进后符合LoD的实现:

```java

// 正确示例:委托给直接朋友处理

customer.updateOrderItemStock;

// Customer类内部实现:

public void updateOrderItemStock {

this.order.updateItemStock;

```

二、与自闭/社交恐惧的关联性

1. 设计隐喻

迪米特法则被比喻为代码的"社交恐惧症"——每个对象像社恐人士一样,只愿与熟悉对象(直接朋友)交流,拒绝嵌套的依赖关系。

2. 实际收益

  • 降低模块间耦合度(修改影响范围小)
  • 提高代码可维护性(依赖关系清晰)
  • 减少意外副作用(避免隐式关联)
  • 三、典型应用场景

    1. 分层架构

    控制器层不应直接访问数据库层,需通过服务层中转。

    2. 对象封装

    汽车对象提供`startEngine`方法,内部隐藏火花塞、燃油泵等组件的操作细节。

    3. API设计

    返回不可变集合(如`Collections.unmodifiableList`),防止外部对象直接修改内部状态。

    四、与其他原则的关系

    1. 与单一职责原则互补

    迪米特法则约束对象间交互,单一职责约束对象自身功能。

    2. 与合成复用原则协同

    优先通过组合(has-a)而非继承(is-a)复用功能,减少继承链带来的隐性依赖。

    如需完整代码示例或特定场景实现方案,可进一步说明具体需求方向。

    下一篇:没有了

    自闭症的症状

    微信公众号