模板模式

来源:互联网 发布:直播混音软件 编辑:程序博客网 时间:2024/06/06 20:26

模板模式:通常我们会遇到这样的一个问题:我们知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序。但是某些步骤的具体实现是未知的,或者说某些步骤的实现与具体的环境相关。

      模板方法模式把我们不知道具体实现的步骤封装成抽象方法,提供一个按正确顺序调用它们的具体方法(这些具体方法统称为“模板方法”),这样构成一个抽象基类。子类通过继承这个抽象基类去实现各个步骤的抽象方法,而工作流程却由父类控制。

首先定义一个基类大家都共有的属性

public abstract class BaseDrink {    // 定义一个方法把下面的方法统一到这个一个方法里面按着你需要逻辑顺序    public void sequence() {        chooseTea();        hotWeter();        pouring();        seasoning();    }    public abstract void chooseTea();    public void hotWeter() {        System.out.println("我们需要把水烧开");    }    public void pouring() {        System.out.println("我们需要把开水泡茶");    }    public abstract void seasoning();}
在写两个继承它类

public class Coffee extends BaseDrink {    @Override    public void chooseTea() {        System.out.println("意式特浓,炭烧咖啡,巴西咖啡豆,哥伦比亚咖啡豆");    }    @Override    public void seasoning() {        System.out.println("添加奶昔或糖");    }}
public class Tea extends BaseDrink {    @Override    public void chooseTea() {        System.out.println("花茶,龙井,绿茶,铁观音");    }    @Override    public void seasoning() {        System.out.println("添加姜片或柠檬");    }}
在Miantiviaty中打印
public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        BaseDrink drink = new Tea();        // 这个时候我们就可以调用这一个方法就能实现所有的逻辑操作或计算        drink.sequence();    }}

打印结果





1 0