zoukankan
html css js c++ java
一个实例来简单的说明接口
很多时候在考虑设计而不是考虑编码的时候,接口才真正清晰,明朗的把它的原理展现给你。举个简单的例子,计算机的主板和显卡,他们之间有统一的约定,只要符合PCI扩展的标准,那么你的显卡肯定能插上主板,并能访问主板来的信息。这个约定就是接口。很多时候,在软件开发领域,接口设计应该是系统分析者的事情,也就是Team Leader的是事情了。Team Leader根据需求设计出Schelable的接口和Architecture,程序员根据他的Architecture去编码,最后开发,测试等等。其实,很多时候,你不用接口也能实现相同甚至更完备的功能。但是,有了接口,会使整个设计变得清晰,明朗。如果从软件的扩展性和重用性上看,接口的设计更显的举足轻重。所以说,理解和认识接口应该从设计的角度看,而不是编码的角度。
附:A Sample
需求:在一个表格(已有的Table类)里面我要显示这样一些数据:
1 文本信息: 显示文本
2 图片信息:显示图片
3 视频信息:播放视频
设计如下:
interface
IDisplayable
{
void
Display(Table table);
}
public
class
Text:IDisplayable
{
public
void
Display(Table table)
{
//
implements the text display method
}
}
public
class
Picture:IDisplayable
{
public
void
Disply(Table table)
{
//
implements picture display here
}
}
public
class
Vedio:IDisplayable
{
public
void
Disply(Table table)
{
//
implements vedio play
}
}
public
class
Test
{
Text t
=
new
Text(
"
Hello
"
);
Picture p
=
new
Picture(
"
1.jpg
"
);
Vedio v
=
new
Vedio(
"
sample.avi
"
);
Table table
=
new
Table();
Table.Add(t);
Table.Add(p);
Table.Add(v);
Table.Show();
foreach
(IDisplayable disp
in
Table.Items)
{
disp.Display(
this
.table);
}
}
查看全文
相关阅读:
敏捷开发系列学习总结(5)——这几招搞定团队协同Coding
敏捷开发系列学习总结(4)—Git管理工具sourcetree的安装
Java基础学习总结(74)——Java常见笔试题及答案汇总
iOS 极光推送
iOS UI控件没有显示时的调试技巧
iOS 搜索之拼音搜索
iOS MJExtension框架之字典数组转模型数组
iOS 单例
iOS 切换键盘
iOS 正则表达式
原文地址:https://www.cnblogs.com/aowind/p/615193.html
最新文章
Mybatis多参数及实体对象传递
Mybatis多参数及实体对象传递
Jquery validate验证表单时多个name相同的元素只验证第一个的问题
Jquery validate验证表单时多个name相同的元素只验证第一个的问题
在JAVA中,String,Stringbuffer,StringBuilder 的区别
关于android中,菜单按钮点击事件首次执行之后再次执行需要双击按钮的问题
关于android studio中使用class.forname()方法动态获取类实例报NO CLASS FOUND异常的几种处理方法
【android】关于自己实现adapter后gridview中item无法被选中的解决方法
关于TortoiseGit设置代理服务器会自动取消的问题解决方法
Android远程服务(AIDL)实现步骤
热门文章
Android中的文件读写总结
fragment界面交互实操(步骤)
service使用handler与Activity沟通的两种方法
敏捷开发系列学习总结(7)——敏捷开发的10大指导原则
数据库中间件MyCat学习总结(1)——MyCat入门简介
关于服务器性能的一些思考
敏捷开发系列学习总结(6)——你用什么工具管理项目
程序员如何提高工作效率
Windows学习总结(8)——DOS窗口查看历史执行过的命令的三种方式
软件工程学习总结(1)——软件测试工具详解
Copyright © 2011-2022 走看看