大神都来说说“接口” 吧今天想了解了解 接口搜索一大把,都是概念性的想听听各位大神,自己对“接口”的理解,也
大神都来说说 “接口” 吧
今天想了解了解 接口
搜索一大把,都是概念性的
想听听各位大神,自己对“接口”的理解,也就是把自己理解的接口用通俗的方式说来听听,学习学习
为啥要用接口?什么场景适合用接口(比如可以使用其他方式时,最好有比较性的说明)?
谢谢 呀
[解决办法]
没错啊,跟电脑机箱里的接口一样
[解决办法]没错啊,跟电脑机箱里的接口一样
比喻和形象,就像耳机孔一样,只需要插孔大小符合,就能提供声音播放,而不要关注声音的具体处理和播放。
接口能够使系统具有更好的封装和灵活性。
比如数据操作接口,数据操作的具体实现可以是与数据库的交互(关系数据库也好,非关系数据库也好,对象数据库也罢),也可以是和xml本地文件的交互等等
[解决办法]没错啊,跟电脑机箱里的接口一样
[解决办法]接口就是服务的承诺
[解决办法]接口就是拿来规范和解耦的
[解决办法]一个姑娘结婚对象的条件要求是有房有车,那么这个有房有车就是一个接口。接口对不上那么基本你就和姑娘无缘了,你也无法调用约会模式,只有实现了她的接口的你才能使用她的功能。明白了吗
[解决办法]讨论这个没啥意思,接口就是我给你提供的菜单,你只管点菜等着吃就行。。。
[解决办法]以前举过这样的例子:
接口就是电源插座,你建房子的时候,就布下了,
你不知道这个插座后边是用来插电视还是插冰箱或者是插洗衣机,
但是插座就是,你外部购买的电器,只要插头符合标准,我就让你在房子内使用。
否则(比如插孔只有两个,你的插头是3插),不能用,这就起到防止误插(隔离)的作用。
[解决办法]这个没啥好讨论滴,结合你这几天的问题,我们觉着你入误区了
呵呵,编程是人编程,不是名词编程。掌握在多名词,区别,差别,优点,缺点---在编程领域里用处不大
俺们可不像你搞硬件,可以说晓龙800就是比不上xxxx,可以说金士顿滴内存条就是水,专业评测根本不用金士顿
在编程领域从来不这么搞,“接口”只是俺们程序员互相交流的约定词语,并不什么品牌和技术规范
[解决办法]接口就是一种标准,大家都套用同一个接口,就能够通用了。
比如店里的商品都贴上了条码,就都只要扫一扫就知道价格。但乡村的小店里的商品,有没有此接口都无所谓,因为没有扫描仪和电脑。
[解决办法]这个“接口”的定义在软件开发过程中,是个很宽泛的名词。
面向接口编程:把自己的程序嵌入到其他程序中,比如我做一个小的急诊系统,需要加入到医院的HIS系统里面,就需要写接口,这样HIS系统才能“识别”调用我写的这个程序。
接口Interface:http://msdn.microsoft.com/zh-tw/library/87d83y5b.aspx
其他接口:也就是业务上面说的“接口”,就是一种规范
[解决办法]你想拿钱,就必须插张适合ATM机这个银行卡接口大小的银行卡,不然你想取钱? 没门!
[解决办法]现在可以拿手机取钱了 - -
[解决办法]我没记错之前楼主问委托。。现在又问接口。。
其实这2个有一定的共同性。。
委托可以看成是定义了一个未实现的方法。。
接口可以看成是定义了一组未实现的方法。。
接口就是一组规范,比如平时家里的电插口,反正我的接口做出来是3插口的,你只要按我的规范来,我就给你供电,然后你得到电力后做你自己的事情。。就是一种规范。。
接口只是概念性的东西,可以减低实际程序的耦合度。没了接口照样可以完成功能,只不过没那么好维护和扩展。。
如果初级的开发,可以不必理会这些东西,慢慢的就会明白了。。。我当初也纠结了好久
public interface ICooking
{
public void GotoCooking();
}
public class Hongshaoqiezi : ICooking
{
public void GotoCooking()
{
//要洗,要油炸,要调料,以及很复杂的逻辑
}
}
public class Malafish : ICooking
{
public void GotoCooking()
{
//要先煮,然后再调料,然后。。。。。。
}
}
public class CookingClient
{
public ICooking CookingClientFactory(string Menu)
{
if (Menu == "Hongshaoqiezi")
return new Hongshaoqiezi();
if (Menu == "Malafish")
return new Malafish();
//这里也可以通过反射,通过Menu来获取实现类的实例,
//以后如果还有新菜品上市,我们只需要新增一个ICooking接口的实现就可以了
return null;
}
}
protected void Page_Load(object sender, EventArgs e)
{
//告诉厨房你要什么菜
string menu = "Hongshaoqiezi";
CookingClient client = new CookingClient();
//厨房接收菜单
ICooking cook = client.CookingClientFactory(menu);
//去做菜
cook.GotoCooking();
}
希望你能理解。。。如果现在出了一道新菜炖羊肉,我们只需要新增一个炖羊肉的类,然后实现icooking接口。。然后再告诉(修改)厨房(CookingClientFactory),如果menu是炖羊肉,你就给我做炖羊肉。。
[解决办法]。。。回头想想,又感觉我的例子不太恰当,没有突出接口的强制性。。
这种情况用抽象类更好。。因为还会洗菜什么的,这些都是做菜前必须的。。
但楼主你先看看,应该对你有好处。。。我也是一点一点自己慢慢爬上来的,希望能对你有帮助
[解决办法]http://www.cnblogs.com/leoo2sk/archive/2009/06/17/1504693.html
最后再给你一篇我个人觉得经典的文章。。