use abstract class to define template(behavior)
to execute its methods.
And use some class to extend it.
to override the method of superclass.
Programmer
package com.test.templatepattern; public abstract class Programmer { abstract boolean getUP(); abstract boolean atCompany(); abstract boolean Home(); public void dailyRoutine(){ getUP(); atCompany(); Home(); } }
Seven
package com.test.templatepattern; public class Seven extends Programmer { @Override boolean getUP() { System.out.println("sleeping"); return false; } @Override boolean atCompany() { System.out.println("coding"); return false; } @Override boolean Home() { System.out.println("sleeping"); return false; } }
Leo
package com.test.templatepattern; public class Leo extends Programmer { @Override boolean getUP() { System.out.println("meeting"); return false; } @Override boolean atCompany() { System.out.println("meeting"); return false; } @Override boolean Home() { System.out.println("meeting"); return false; } }
Lewis
package com.test.templatepattern; public class Lewis extends Programmer { @Override boolean getUP() { System.out.println("coding"); return false; } @Override boolean atCompany() { System.out.println("coding"); return false; } @Override boolean Home() { System.out.println("coding"); return false; } }
testTemplatePattern
package com.test.templatepattern; public class testTemplatePattern { public static void main(String[] args) { /* template pttern: use abstract class to define template(behavior) to execute its methods. And use some class to extend it. to override the method of superclass. */ Programmer lewis = new Lewis(); lewis.dailyRoutine(); System.out.println(); Programmer leo = new Leo(); leo.dailyRoutine(); System.out.println(); Programmer seven = new Seven(); seven.dailyRoutine(); System.out.println(); } }
console
coding coding coding meeting meeting meeting sleeping coding sleeping
沒有留言:
張貼留言