java 中一种另类的模板方法写法_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java 中一种另类的模板方法写法

java 中一种另类的模板方法写法

 2020/7/28 18:12:28  help  程序员俱乐部  我要评论(0)
  • 摘要:有一种模板方法大家应该都很熟悉。publicabstractclassFather{//基本方法protectedabstractvoiddoSomething();//基本方法protectedabstractvoiddoAnything();//模板方法publicvoidtemplateMethod(){/**调用基本方法,完成相关的逻辑*/this.doAnything();this.doSomething();}}publicclassSonextendsFather
  • 标签:模板 方法 Java 另类
有一种模板方法大家应该都很熟悉。
public abstract class Father {
    // 基本方法
    protected abstract void doSomething();

    // 基本方法
    protected abstract void doAnything();

    // 模板方法
    public void templateMethod() {
        /*
         * 调用基本方法,完成相关的逻辑
         */
        this.doAnything();
        this.doSomething();
    }
}
public class Son extends Father{

    @Override
    protected void doSomething() {
        System.out.println("Son doSomething");
    }

    @Override
    protected void doAnything() {
        System.out.println("Son doAnything");
    }
   
}

public class TestMain {
    public static void main(String[] args) {
        Son son = new Son();
        son.templateMethod();
    }
}


------------------------------------------------------------------

那下面这种写法是什么原理:

public abstract class Father {
    // 基本方法
    protected abstract void doSomething();

    // 基本方法
    protected void doAnything(){
       templateMethod();
    }

    // 模板方法
    public void templateMethod() {
       System.out.println("111");
    }
}

public class Son extends Father{

    @Override
    protected void doSomething() {
        doAnything();
    }

    // 模板方法
    public void templateMethod() {
       System.out.println("222");
    }
   
}

public class TestMain {
    public static void main(String[] args) {
        Son son = new Son();
        son.doSomething();
    }
}

//打印了222

先调用父类方法doAnything,又会调用子类的非抽象方法templateMethod
上一篇: 企业为何需要建立统一的复用型软件平台? 下一篇: 没有下一篇了!
发表评论
用户名: 匿名