接口跟基类的一点点感受
2006-01-05 15:35
225 查看
基类这东东,比较容易理解,但是很多人接触接口的时候,有点晕
甚至乎觉得接口是没什么用的,因为接口没有实现任何代码,就好像一个空架子
不像基类,至少会实现共用方法和共用成员,其他的部分留给派生类去扩展
要基类反映的就是自然界的遗传特性,从这一点来说,实际上面向对象的思想还是比较容易理解,毕竟他是完全按人类的思维方式在程序设计领域的一个实现
那接口呢?这玩意用来干嘛?
举个例子,有一个老汉,做了一个面饼,给了他的几个儿子,老大用这个饼,加上点馅,包一下,做成了包子,老二用这个面饼,在外面刷上油,撒上料,烤一烤,做成了土家烧饼,老三呢,胡乱做,在饼上抹上乱七八糟的东西,烤一烤,做成了披萨饼.基类和派生类的关系就是这样,基类提供了基本的实现,派生类就在上面添料,最终就成了每个人心中想要的饼
那接口的故事则不一样,老汉没有给众人面,老汉这回给儿子们画了一个饼的设计图,规定了这个饼的厚度,直径等等,然后把这个规格表发给儿子们了,儿子们拿着画的饼,各自按自己的想法去做了
两个故事的区别告诉我们,接口是一种规格,是一个统一的标准
在实际应用中,接口有两方法的作用
1,通过接口更容易表现设计,更容易沟通,而且接口是没有实现代码的,因此,定好接口,再写实现代码,就算设计上有变动,也可以通过接口轻易实现修改.而如果不用接口的话,你将直接去写类,好不容易实现了一个类的代码,如果设计上有少许的变动,就要去改代码
2.接口是写类的实现者看的,这好比建筑图纸是画给施工工人看的
甚至乎觉得接口是没什么用的,因为接口没有实现任何代码,就好像一个空架子
不像基类,至少会实现共用方法和共用成员,其他的部分留给派生类去扩展
要基类反映的就是自然界的遗传特性,从这一点来说,实际上面向对象的思想还是比较容易理解,毕竟他是完全按人类的思维方式在程序设计领域的一个实现
那接口呢?这玩意用来干嘛?
举个例子,有一个老汉,做了一个面饼,给了他的几个儿子,老大用这个饼,加上点馅,包一下,做成了包子,老二用这个面饼,在外面刷上油,撒上料,烤一烤,做成了土家烧饼,老三呢,胡乱做,在饼上抹上乱七八糟的东西,烤一烤,做成了披萨饼.基类和派生类的关系就是这样,基类提供了基本的实现,派生类就在上面添料,最终就成了每个人心中想要的饼
那接口的故事则不一样,老汉没有给众人面,老汉这回给儿子们画了一个饼的设计图,规定了这个饼的厚度,直径等等,然后把这个规格表发给儿子们了,儿子们拿着画的饼,各自按自己的想法去做了
两个故事的区别告诉我们,接口是一种规格,是一个统一的标准
在实际应用中,接口有两方法的作用
1,通过接口更容易表现设计,更容易沟通,而且接口是没有实现代码的,因此,定好接口,再写实现代码,就算设计上有变动,也可以通过接口轻易实现修改.而如果不用接口的话,你将直接去写类,好不容易实现了一个类的代码,如果设计上有少许的变动,就要去改代码
2.接口是写类的实现者看的,这好比建筑图纸是画给施工工人看的
相关文章推荐
- 项目后的一点点感受
- C# 关于接口与基类的理解(二者的区别)
- c风格回调函数 vs c++风格虚基类,关于接口定义和调用的对比
- 读python下opencv的一点点感受(第一篇文章)
- 学习中的一点点感受
- 泛型技巧系列:避免基类及接口约束
- More Effective C# Item7 : 不要为基类或者接口创建泛型的特殊实现
- 一个实现了 IDisposable 接口的基类
- 基接口,基类、子类在调用时的一个有趣现象
- DI容器Ninject在管理接口和实现、基类和派生类并实现依赖注入方面的实例
- 为什么继承是有害的?--通过把具体的基类转变成接口来改进你的代码
- 【每天填坑一点点】(一)---为app写接口 尽量不返回给前端null 解决方法
- Apache James 开发感受和一点点经验 Mackalli
- 基类,接口的阐述
- 用基类,接口,本类实例化对象的区别
- 找工作的一点点感受
- 对操作系统的五点感受--接口/进程/内存/磁盘管理/系统架构
- C++ 虚函数&纯虚函数&抽象类&接口&虚基类
- C++ 虚函数&纯虚函数&抽象类&接口&虚基类
- C++ 虚函数、纯虚函数、抽象类、接口、虚基类