栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

向学生解释界面

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

向学生解释界面

如果您想向初学者解释它,我会坚持这样的想法,即接口可以促进代码内的代码重用和模块化:

例如,假设我们要绘制一些对象:

public class Painter {    private List<Paintable> paintableObjects;    public Painter(){       paintableObjects = new ArrayList<Paintable>();    }    public void paintAllObjects(){        for(Paintable paintable : paintableObjects){ paintable.paint();        }    }}public interface Paintable {     public void paint();}

现在,您可以向学生解释,没有Paintable接口,Painter对象将需要有一些方法来绘制某些类型的对象,例如称为

paintFences()
和的方法,
paintRocks()
并且我们需要
Collection
为每种类型的对象都需要一个新对象,能够绘画。

但值得庆幸的是,我们拥有使绘画对象变得轻而易举的接口,并且如何绘画对象完全取决于实现Paintable接口的类。

编辑

我忘记提到的另一个好处是,如果您需要向代码库中添加新对象以绘画,那么您所需要做的就是创建一个实现Paintable的新类,而Painter类则无需更改。从这个意义上说,Painter类从不依赖于将要绘制的对象,只需要能够绘制它们即可。

编辑2

James
Raybould让我想起了我忘记提到的界面的关键用法:在组件之间有一个接口,例如Paintable对象和Painter对象,可以使您更轻松地与其他人一起开发。一个开发人员可以处理Painter对象,而另一个开发人员可以处理Paintable对象,并且他们必须共同定义一个共同使用的接口,以使它们一起正常工作。我知道当我与大学级别的其他人一起完成项目时,当您试图让每个人都在项目的不同部分上工作并且最终使所有组件完美结合时,这确实很有用。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/507124.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号