设计模式-外观模式
设计模式-外观模式
月夜筱风 发表于6个月前
设计模式-外观模式
  • 发表于 6个月前
  • 阅读 14
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

摘要: 写着玩

一,定义

输入图片说明

输入图片说明

就是把一堆类给放在一个方法(A)中去初始化,然后在A中写方法去组装那一堆类中的方法,对外所有的方法只调用A中的方法,以后只关心A中的方法,不用管那一堆类中的方法了

二,代码

  • 2.1,目录

输入图片说明

  • 2.2,代码
package com.boot.lijunhao.waiguan;

/**
 * 外观模式入口
 * Created by lijunhao on 2017/8/29.
 */
public class InClass {

    private MethodClassA methodClassA;

    private MethodClassB methodClassB;

    private MethodClassC methodClassC;

    public InClass() {
        //实例化所有的MethodClassA,MethodClassB,MethodClassC
        this.methodClassA = new MethodClassA();
        this.methodClassB = new MethodClassB();
        this.methodClassC = new MethodClassC();
    }

    //ABCD方法随意组合   --start
    public void methodA(){
        methodClassA.Amethod();
        methodClassB.Amethod();
        methodClassC.Cmethod();
    }

    public void methodB(){
        methodClassA.Amethod();
        methodClassB.Amethod();
    }

    public void methodC(){
        methodClassA.Dmethod();
        methodClassB.Dmethod();
        methodClassC.Cmethod();
    }

    public void methodD(){
        methodClassA.Dmethod();
    }
    //ABCD方法随意组合   --start
}

package com.boot.lijunhao.waiguan;

import lombok.extern.slf4j.Slf4j;

/**
 * Created by lijunhao on 2017/8/29.
 */
@Slf4j
public class MethodClassA {


    public void Amethod(){
        log.info("Amethod在类(MethodClassA.java:13)行:{}","A类中的方法a");
    }

    public void Bmethod(){
        log.info("Bmethod在类(MethodClassA.java:17)行:{}","A类中的方法b");
    }

    public void Cmethod(){
        log.info("Cmethod在类(MethodClassA.java:21)行:{}","A类中的方法c");
    }

    public void Dmethod(){
        log.info("Dmethod在类(MethodClassA.java:25)行:{}","A类中的方法d");
    }

}

package com.boot.lijunhao.waiguan;

import lombok.extern.slf4j.Slf4j;

/**
 * Created by lijunhao on 2017/8/29.
 */
@Slf4j
public class MethodClassB {


    public void Amethod(){
        log.info("Amethod在类(MethodClassB.java:13)行:{}","B类中的方法a");
    }

    public void Bmethod(){
        log.info("Bmethod在类(MethodClassB.java:17)行:{}","B类中的方法b");
    }

    public void Cmethod(){
        log.info("Cmethod在类(MethodClassB.java:21)行:{}","B类中的方法c");
    }

    public void Dmethod(){
        log.info("Dmethod在类(MethodClassB.java:25)行:{}","B类中的方法d");
    }
}
package com.boot.lijunhao.waiguan;

import lombok.extern.slf4j.Slf4j;

/**
 * Created by lijunhao on 2017/8/29.
 */
@Slf4j
public class MethodClassC {


    public void Amethod(){
        log.info("Amethod在类(MethodClassC.java:13)行:{}","C类中的方法a");
    }

    public void Bmethod(){
        log.info("Bmethod在类(MethodClassC.java:17)行:{}","C类中的方法b");
    }

    public void Cmethod(){
        log.info("Cmethod在类(MethodClassC.java:21)行:{}","C类中的方法c");
    }

    public void Dmethod(){
        log.info("Dmethod在类(MethodClassC.java:25)行:{}","C类中的方法d");
    }
}


package com.boot.lijunhao.waiguan;

import lombok.extern.slf4j.Slf4j;

/**
 * Created by lijunhao on 2017/8/29.
 */
@Slf4j
public class Start {


    public static void main(String[] args) {
        //所有的入口都是这个InClass,用其里面的方法去调用
        InClass inClass = new InClass();
        inClass.methodA();
        log.info("main在类(Start.java:16)行:{}","A方法结束");
        inClass.methodB();
        log.info("main在类(Start.java:18)行:{}","B方法结束");
        inClass.methodC();
        log.info("main在类(Start.java:20)行:{}","C方法结束");
        inClass.methodD();
        log.info("main在类(Start.java:22)行:{}","D方法结束");
    }
}

  • 2.3,结果
13:29:56.344 [main] INFO com.boot.lijunhao.waiguan.MethodClassA - Amethod在类(MethodClassA.java:13)行:A类中的方法a
13:29:56.348 [main] INFO com.boot.lijunhao.waiguan.MethodClassB - Amethod在类(MethodClassB.java:13)行:B类中的方法a
13:29:56.349 [main] INFO com.boot.lijunhao.waiguan.MethodClassC - Cmethod在类(MethodClassC.java:21)行:C类中的方法c
13:29:56.349 [main] INFO com.boot.lijunhao.waiguan.Start - main在类(Start.java:16)行:A方法结束
13:29:56.349 [main] INFO com.boot.lijunhao.waiguan.MethodClassA - Amethod在类(MethodClassA.java:13)行:A类中的方法a
13:29:56.349 [main] INFO com.boot.lijunhao.waiguan.MethodClassB - Amethod在类(MethodClassB.java:13)行:B类中的方法a
13:29:56.349 [main] INFO com.boot.lijunhao.waiguan.Start - main在类(Start.java:18)行:B方法结束
13:29:56.349 [main] INFO com.boot.lijunhao.waiguan.MethodClassA - Dmethod在类(MethodClassA.java:25)行:A类中的方法d
13:29:56.349 [main] INFO com.boot.lijunhao.waiguan.MethodClassB - Dmethod在类(MethodClassB.java:25)行:B类中的方法d
13:29:56.349 [main] INFO com.boot.lijunhao.waiguan.MethodClassC - Cmethod在类(MethodClassC.java:21)行:C类中的方法c
13:29:56.349 [main] INFO com.boot.lijunhao.waiguan.Start - main在类(Start.java:20)行:C方法结束
13:29:56.349 [main] INFO com.boot.lijunhao.waiguan.MethodClassA - Dmethod在类(MethodClassA.java:25)行:A类中的方法d
13:29:56.349 [main] INFO com.boot.lijunhao.waiguan.Start - main在类(Start.java:22)行:D方法结束
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 53
码字总数 19574
×
月夜筱风
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: