设计模式课时九------中介者模式

…衆ロ難τιáo~ 提交于 2019-12-06 18:37:57

中介者模式

优点:将原来两个直接引用的对象分开,在中间加入一个 中介,使得两个对象 分别和 中介 对象引用或依赖。使得其耦合松散。

组成部分:
1.抽象中介者角色
2.具体中介者角色
3.同事角色

MVC–(模型层,表现层,控制层)中的控制层就相当于 模型 和 表现层 之间的中介模式

/**
 * 中介模式----相亲
 * man  男方
 * manP 男方父母
 * woman 女方
 * womanP 女方父母
 * matchmaker 中介
 * Demo  开始介绍
 * 避免男方和父母、女方、女方父母的复杂交互,以及女方和父母的复杂交互
 *
 */
package Abstract.intermediary;
class Man
{
    private MatchMaker mat ;
    public Man ( MatchMaker matchMaker)
    {
        this.mat = matchMaker;
        mat.manRegist(this);
    }
    //考虑
    public void think( String says )
    {
        if ( says.length()>5 )
            System.out.println("我同意了");
        else
            System.out.println("太内向,我不喜欢");
    }
    //提出约会
    public void tryst ( String says )
    {
        System.out.println("-------------男方提出约会,说:"+says);
        mat.doManTry( says );
        System.out.println("-------------处理完毕----------------------");
    }
}
class ManP
{
    private MatchMaker mat ;
    public ManP( MatchMaker matchMaker )
    {
        this.mat = matchMaker;
        mat.manPRegist(this);
    }
    //考虑
    public void think( String says )
    {
        if (says.length()>5)
            System.out.println("男方父母同意!");
        else
            System.out.println("男方父母不同意!!!");
    }
}
class Woman
{
    private MatchMaker mat;
    public Woman( MatchMaker matchMaker )
    {
        this.mat = matchMaker;
        mat.womanRegist(this);
    }
    //考虑
    public void think( String says )
    {
        if ( says.length()>5 )
            System.out.println("女方:我同意啦。。。");
        else
            System.out.println("女方:我不同意...");
    }
    //提出
    public void tryst( String says )
    {
        System.out.println("----------女方提出约会,说:"+says );
        mat.doWomanTry( says );
        System.out.println("----------处理约会请求结束-------------");
    }
}
class WomanP
{
    private MatchMaker mat;
    public WomanP( MatchMaker matchMaker )
    {
        this.mat = matchMaker;
        mat.womanPRegist(this);
    }
    public void think( String says )
    {
        if ( says.length()>5 )
            System.out.println("女方父母同意啦。。。。");
        else
            System.out.println("女方父母不同意......");
    }
}
class MatchMaker
{
    private Man man;
    private Woman woman;
    private ManP manP;
    private WomanP womanP;

    public void manRegist( Man man)
    {
        this.man = man;
    }
    public void womanRegist( Woman woman )
    {
        this.woman = woman;
    }
    public void womanPRegist( WomanP womanP )
    {
        this.womanP = womanP;
    }
    public void manPRegist( ManP manP )
    {
        this.manP = manP;
    }
    //男方提出
    public void doManTry( String says )
    {
        woman.think(says);
        manP.think(says);
        womanP.think(says);
    }
    //女方提出
    public void doWomanTry( String says )
    {
        man.think(says);
        manP.think(says);
        womanP.think(says);

    }
}
public class Demo {
    public static void main(String[] args) {
        MatchMaker matchMaker = new MatchMaker();
        Man man = new Man(matchMaker);
        Woman woman = new Woman(matchMaker);
        ManP manP = new ManP(matchMaker);
        WomanP womanP = new WomanP(matchMaker);
        System.out.println("--------------------男方提出约会-------------------------");
        man.tryst("我感觉咱俩聊得来。要不?");
        System.out.println("--------------------女方提出约会-------------------------");
        woman.tryst("我..");
    }
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!