设计原则·迪米特原则

迪米特法则又叫作最少知识原则,就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。

如果两个实体没有直接调用的必要,那么就可以通过第三方转发该调用。其目的是降低类之间的耦合度,提高模块的相对独立性和复用性。但是这个法则也存在适用性,我们需要反复权衡,确保高内聚和低耦合的同时,保证系统的结构清晰。
如果只是单纯的两个实体之间的调用大可不必通过第三方,但是如果需要记录其请求内容和请求结果则可以通过第三方调用,在第三方处完成记录的业务处理。

public class Landlord {
    /**
     * 房东名
     */
    private String fdName;

    public String getFdName() {
        return fdName;
    }

    public void setFdName(String fdName) {
        this.fdName = fdName;
    }

    public Landlord() {
    }

    public Landlord(String fdName) {
        this.fdName = fdName;
    }

    @Override
    public String toString() {
        return "Landlord{" +
                "fdName='" + fdName + '\'' +
                '}';
    }
}
public class Tenant {
    /**
     * 租客名
     */
    private String zkName;

    public String getZkName() {
        return zkName;
    }

    public void setZkName(String zkName) {
        this.zkName = zkName;
    }

    public Tenant() {
    }

    public Tenant(String zkName) {
        this.zkName = zkName;
    }

    @Override
    public String toString() {
        return "Tenant{" +
                "zkName='" + zkName + '\'' +
                '}';
    }
}
/*
*	中介类
*/
public class Middleman {
    /**
     * 房东名
     */
    private Landlord fdName;
    /**
     * 租客名
     */
    private Tenant zkName;

    public Landlord getFdName() {
        return fdName;
    }

    public void setFdName(Landlord fdName) {
        this.fdName = fdName;
    }

    public Tenant getZkName() {
        return zkName;
    }

    public void setZkName(Tenant zkName) {
        this.zkName = zkName;
    }

    public void contract(){
        System.out.println("【" + fdName.getFdName() + "】" + "和" + "【" + zkName.getZkName() + "】" + "通过中介签署租房合同");
    }
}
public static void main(String[] args) {
    Middleman middleman = new Middleman();
    middleman.setFdName(new Landlord("A房东"));
    middleman.setZkName(new Tenant("C租客"));
    middleman.contract();
}
【A房东】和【C租客】通过中介签署租房合同
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯智能台灯

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值