设计模式之强大的接口适配器模式,继承Thread or 实现Runnable?

已知一个类实现了某种功能,须要让这个类能够被接口可用。java

能够经过对该类进行扩展,并实现统一接口,能够完成一个适配器模式。大部分的设计模式都是经过接口来表达,接口中的域字段默认是static和final的。设计模式

经过适配器模式,咱们能够在任何现有类的基础上添加新的接口,因此这意味着让方法接受接口类型,是一种让任何类均可以对该方法进行适配的方式。以下EnglishTeacher自己只有teachEnglish方法,可是Nestty只接受IGeneralTeacher接口,为了让英语老师继续能够教课,能够经过增长适配器的方法进行原来类的复用。这就能够看到接口而不是类的强大之处。this

//TODO demo设计

public class NesttyMain {
    IGeneralTeacher generalTeacher;

    interface IGeneralTeacher{
        public void doTeach();
    }

    static class EnglishTeacher{
        public void teachEnglish(){
            System.out.println("teach English");
        }
    }

    static class AdaptedEnglishTeacher extends EnglishTeacher implements IGeneralTeacher{

        public void doTeach() {
            teachEnglish();
        }
    }


    NesttyMain(IGeneralTeacher generalTeacher){
        this.generalTeacher = generalTeacher;
    }

    public static void main(String[] args){
        NesttyMain nm = new NesttyMain(new AdaptedEnglishTeacher());
        nm.generalTeacher.doTeach();
    }

}

基于设计模式来讲,实现Runnable接口能够继承另一个不一样的类,而继承Thread则不能够。能够看到区别了吧?code

相关文章
相关标签/搜索