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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章