Android的开发之&java23中设计模式------模板方法模式

public abstract class AbstractPerson {
    //抽象类定义整体流程骨架
    public void prepareGotoSchool(){
        dressUp();
        eatBreakfast();
        takeThings();
    }

    //以下是不同子类根据自身特性完成的具体步骤
    protected abstract void dressUp();
    protected abstract void eatBreakfast();
    protected abstract void takeThings();
}



public class Student extends AbstractPerson {
    @Override
    protected void dressUp() {
        System.out.println("穿校服");
    }

    @Override
    protected void eatBreakfast() {
        System.out.println("吃妈妈做好的早饭");
    }

    @Override
    protected void takeThings() {
        System.out.println("背书包,带上家庭作业和红领巾");
    }
}

public class Teacher extends AbstractPerson {

    @Override
    protected void dressUp() {
        System.out.println("穿工作服");
    }

    @Override
    protected void eatBreakfast() {
        System.out.println("做早饭,照顾孩子吃早饭");
    }

    @Override
    protected void takeThings() {
        System.out.println("带上昨晚准备的考卷");
    }
}/**
 * 模板方法模式(Template Method)
 */
public class TemplateMethodActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_template_method);

        AbstractPerson student=new Student();
        student.prepareGotoSchool();

        AbstractPerson teacher=new Teacher();
        teacher.prepareGotoSchool();
    }
}


github地址:https://github.com/zyj18410105150/DesignMode

猜你喜欢

转载自blog.csdn.net/jie1123161402/article/details/78688743