迪米特法则

suaxi
2022-08-27 / 0 评论 / 34 阅读 / 正在检测是否收录...

定义:如果两个软件实体无需直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用,其目的是降低耦合,提高模块的相对独立性

以明星和经纪人为例:
5.迪米特法则.png


Agent

public class Agent {

    private Star star;
    private Fans fans;
    private Company company;

    public Star getStar() {
        return star;
    }

    public void setStar(Star star) {
        this.star = star;
    }

    public Fans getFans() {
        return fans;
    }

    public void setFans(Fans fans) {
        this.fans = fans;
    }

    public Company getCompany() {
        return company;
    }

    public void setCompany(Company company) {
        this.company = company;
    }

    public void meeting() {
        System.out.println(star.getName() + "和粉丝:" + fans.getName() + "见面");
    }

    public void business() {
        System.out.println(star.getName() + "和" + company.getName() + "进行洽谈");
    }
}

Star

public class Star {

    private String name;

    public Star(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

Fans

public class Fans {

    private String name;

    public Fans(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

Company

public class Company {

    private String name;

    public Company(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

Client

public class Client {
    public static void main(String[] args) {
        //经纪人
        Agent agent = new Agent();
        //明星
        Star star = new Star("孙笑川");
        agent.setStar(star);

        //粉丝
        Fans fans = new Fans("药水哥");
        agent.setFans(fans);

        //媒体公司
        Company company = new Company("xxxTV");
        agent.setCompany(company);

        //粉丝见面会
        agent.meeting();
        //商务洽谈
        agent.business();
    }
}
0

评论 (0)

取消