设计模式——模板方法模式
程序员文章站
2022-04-14 15:29:18
模板方法模式就是在父(基)类定义模板(流程),而具体的处理环节交给子类来实现 附录 github.com/maikec/patt… 个人GitHub设计模式案例 声明 引用该文档请注明出处 ......
模板方法模式就是在父(基)类定义模板(流程),而具体的处理环节交给子类来实现
/** * @author maikec * @date 2019/5/10 */ public abstract class abstractdisplay { private final integer print_count =5; /** * 打开操作 */ protected abstract void open(); /** * 打印操作 */ protected abstract void print(); /** * 关闭操作 */ protected abstract void close(); /** * 定义模板 */ public final void display(){ open(); for (int i = 0; i < print_count; i++) { print(); } close(); } } /** * @author maikec * @date 2019/5/10 */ public class chardisplay extends abstractdisplay { private final character achar; public chardisplay(character achar){ if (null == achar){ throw new illegalargumentexception( "character cannot be null" ); } this.achar = achar; } @override public void open() { system.out.println( "open char " ); } @override public void print() { system.out.println( achar.charvalue() ); } @override public void close() { system.out.println( "close char" ); } } /** * @author maikec * @date 2019/5/10 */ public class stringdisplay extends abstractdisplay { private final string string ; public stringdisplay(string string){ if (null == string){ throw new illegalargumentexception( "string cannot be null" ); } this.string = string; } @override public void open() { system.out.println( "open string" ); } @override public void print() { system.out.println( string ); } @override public void close() { system.out.println( "close string" ); } } /** * @author maikec * @date 2019/5/10 */ public class templatedemo { public static void main(string[] args) { abstractdisplay display = new chardisplay( '*' ); display.display(); abstractdisplay stringdisplay = new stringdisplay( "hi" ); stringdisplay.display(); } }
附录
github.com/maikec/patt… 个人github设计模式案例
声明
引用该文档请注明出处
上一篇: Python分布式爬虫抓取知乎用户信息并进行数据分析
下一篇: python描述符和属性查找