模板模式

2018-11-05  本文已影响0人  要学的东西太多了

准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。模板模式是很常用的模式,用于继承的代码复用。

示例如下:

public class Template {
    public static void main(String[] a){
        Template template=new Template();
        Person 小张 = template.new Child("小张");
        小张.talk();
        Person 大明 = template.new Student("大明");
        大明.talk();
    }

    abstract class Person{
        protected String name;

        public Person(String name) {
            this.name = name;
        }

        public void talk(){
            System.out.println(getType()+"说话了");
        }
        abstract String getType();
    }

    class Child extends Person{
        public Child(String name) {
            super(name);
        }

        @Override
        String getType() {
            return "小孩"+name;
        }
    }

    class Student extends Person{
        public Student(String name) {
            super(name);
        }

        @Override
        String getType() {
            return "学生"+name;
        }
    }
}
上一篇下一篇

猜你喜欢

热点阅读