如何理解"针对接口编程,而不是针对实现编程"这句话?(50分)

D

deemon

Unregistered / Unconfirmed
GUEST, unregistred user!
请给点意见!
 
大概是"面向对象,基于类的编程实现"与"面向过程的编程实现"的区别吧!
个人理解,呵呵.
 
我理解的是把实现写成的抽象方法/虚方法,然后由子类实现它,
嘿嘿,说的不好,别介意
 
我的理解是:在设计过程中,首先考虑的是一个实体的行为,这个实体可以是一个完整的系统,也可以是一个很小的模块.这些行为的集合就是接口.
套用一下<非程序员25期>里的例子,比如一个邮局接受开设ADSL的业务,要开发一个相应的业务管理系统,那么首先是做需求分析啦,我们就会这样:
做需求的人跑到邮局去问:你们这个系统想有什么功能啊?
邮局的人说:首先,顾客来申请开设ADSL,那么我们系统要有管理开户的功能?
做需求的人问:开户要怎么怎么呢?
邮局的人说:基里哇啦,呜哩呜哩……
上面的过程大家想必很熟悉,回来以后就是整理需求,进行分析和设计了。
那么面向实现的编程方法就会这样:
1数一下要实现多少个功能,1、2、3、4……
2实现每一个功能的详细方法,界面、数据、操作……
……
在上面的这个过程中,首先我们关注的就是功能如何实现,每个功能都实现了,系统就是这些实现方法的集合。
而面向接口的编程方法是怎样的呢?
1分析系统的功能,捕获用例(use case),测试
2细化,提取接口,过程迭代,测试
3实现接口,测试
……
在上面的过程中,我们首先关注的是系统的行为:谁来用这个系统、怎么用?他向系统发出怎样的指令?他希望系统给出什么样的结果?……这些接口的集合最终成为系统的描述。而在系统的内部也是这样,每个模块先确定它的行为,这个模块输入什么,输出什么……,最后当接口确定下来了,我们就可以实现它了。
 
顶部