接口,关系着抽象与实现。在应用层中,接口通常被引用或者说是调用,是抽象层的
逻辑对象,在应用层中,实现是不必实现的--也就是说,我们没必要向客户交代我们
是怎样去实现的。我们提供的只要符合客户的需要就可以了。下面是我的一下思考:
1、等号的两端。
面向对象设计,重要的一个特点是多态。一个引用,可以引用多种态的对象,而这些
对象只要符合引用的类型(type:类或者接口)。所以说,等号的左边是抽象概念,
而右边是具体实现。在调用的时候,左边的是代号,代表着右边的实现。
2、大括号内与大括号外:
我们通常定义方法的时候,方法有方法名、返回值、参数,在JAVA中,这三个要素
组成了方法。这三个要素也是经常出现在应用层,是括号外的东西。在这个方法究竟
是要做什么的也就是括号内的事情了,括号内的内容是它的真实实现,而括号外方法
名也就是在调用层中,实现的代表而已,然而方法名可以说是抽象的。同上,在被调
用的时候,方法名是代号,实现也就是括号内东东了。
3、根据以上两点我们可以得出。在调用层中,与客户打交道的是抽象的、可作代号的东
西,如引用、方法名。而具体的实现,我们是可以把它隐藏在这些抽象的、代号的后
面,不必让客户知道。所以说,我们要搞好业务逻辑,我们用抽象的、代号的东西来
表示。当我们确定了这些东西后,我们要构建的各种对象的抽象概念也比较容易地确
定下来了。各种对象之间的关系,他们的责任的分配是怎样也可以容易分清。最后我
们再去关心括号内的事情就好了。这有点像测试驱动开发,先把可以测试的框架建立
起来,然后再把括号内的具体实现做好,边测试边开发,到最后写完代码,程序也就
差不多了。