博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式之强大的接口适配器模式,继承Thread or 实现Runnable?
阅读量:6841 次
发布时间:2019-06-26

本文共 1073 字,大约阅读时间需要 3 分钟。

hot3.png

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

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

通过适配器模式,我们可以在任何现有类的基础上添加新的接口,所以这意味着让方法接受接口类型,是一种让任何类都可以对该方法进行适配的方式。如下EnglishTeacher本身只有teachEnglish方法,但是Nestty只接受IGeneralTeacher接口,为了让英语老师继续可以教课,可以通过增加适配器的方法进行原来类的复用。这就可以看到接口而不是类的强大之处。

//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则不可以。可以看到区别了吧?

转载于:https://my.oschina.net/u/1271447/blog/2993219

你可能感兴趣的文章