• 【设计模式】行为型02模板方法模式(Template Method Patten)


        五一长假,没有出去,不喜欢嘈杂的人群,玩了会游戏发泄了下憋在心底的戾气,手旁大马克杯里是母亲泡的绿茶。点开自己的播放列表,耳机里传来的是理查德克莱德曼的致爱丽丝。自己是个凡人,卑微渺小的活着。不说废话了,搞起:

        模板方法模式是一种行为型模式,原理比较简单,就是对多态的一种应用,自己也在无意识中使用过很多次,看书时才意识到这种方式被总结为设计模式。


        首先说说我自己的理解:模板方法模式是多态的一种应用。书上如此描述:"在模版方法模式中,通过在模版抽象类中定义一个操作的算法骨架,将一些步骤抽取封装到具体的抽象方法中,强迫子类进行按需要重写实现方法,这样使得在使用的时候,子类可以不改变算法结构即可重新定义算法的特定步骤。模版方法模式是基于继承代码复用的基本技术。"--摘抄自阎宏博士的《JAVA与模式》一书

        核心是定义标准如类图:

      

    看到这里我觉得没有什么上代码的必要了。。。。。这里盲写一下

    // 抽象父类,定义手机这种产品以及三个抽象方法
    abstract class Phone {
    	abstract void style();
    
    	abstract void configuration();
    
    	abstract void call();
    }
    
    // 子类一,普通手机类,实现三个抽象方法
    class NormalPhone extends Phone {
    	public void style() {
    		System.out.println("生产塑料外壳");
    	}
    
    	public void configuration() {
    
    		System.out.println("装配单核CPU1G内存");
    	}
    
    	public void call() {
    		System.out.println("打电话。。");
    	}
    }
    
    // 自类二,高级手机类,实现三个抽象方法
    
    class HighGradelPhone extends Phone {
    
    	public void style() {
    		System.out.println("生产闪闪发光的土豪金外壳");
    	}
    
    	public void configuration() {
    
    		System.out.println("装配108核CPU10G内存");
    	}
    
    	public void call() {
    		System.out.println("打电话。。。");
    	}
    }
    
    
    public class Factory {
    	public static void main(String[] args) {
    		// 普通手机流水线:
    		Phone normal = new NormalPhone();
    		normal.style();
    		Phone hight = new HighGradelPhone();
    		hight.style();
    	}
    }


    emmmm下一篇见


  • 相关阅读:
    js中的异常处理
    CSS3之box-sizing属性
    AJAX
    NaN与Null与undefiined的关系
    跳转语句之continue与break
    npm火速上手
    程序里面的‘脑筋急转弯’
    css伪元素::before与::after
    常用正则表达式、JS中的正则以及ES6的扩展
    git
  • 原文地址:https://www.cnblogs.com/the-fool/p/11054151.html
Copyright © 2020-2023  润新知