通过接口组合实现局部共性特征的复用

在面向对象的编程中,我们会设计许多的ADT,每个ADT分别执行不同的功能。但在设计这些ADT时,不免要考虑不同的ADT之间存在着相同的方法,如何将这些相同的方法实行复用是避免重复,加快效率的关键。
通过接口组合实现局部共性特征的复用是一种简单有效的进行复用的方法。举例来讲,我们希望实现一个可以复用的管理系统,这个系统可以同时被航班管理系统,铁路管理系统和课程管理系统,内存管理系统复用。这四个系统之间存在着一些方法,这类方法可以被其中几个系统公用,但并非全部系统都可以使用,我们如果将这些方法全放在子类的具体实现中,就不免要重复实现这些方法多次,而这时我们就可以使用通过接口组合实现局部共性特征的复用。
比如对于这些系统,都存在着地点这一属性,航班管理系统的地点是一对地址,而铁路管理系统是一串地址,但内存管理系统和课程管理系统的地点都是一个地址,这就为我们的复用提供了机会。我们在构造ADT时就要考虑这种复用。
我们首先建立三个接口TwoLocation、OneLocation、ListLocation,然后使用TwoLocationImpl、OneLocationImpl、ListLocationImpl三个类实现这三个接口。
例如:(具体以航班为例)

public interface TwoLocation{
public void setLcoation(...)//声明所需方法
}
public interface OneLocation{...}
public interface ListLocation{...}

public class TwoLocationImpl implements TwoLocation{
...
public void setLcoation(...){...}//实现方法
}
public class OneLocationImpl implements OneLocation{...}
public class ListLocationImpl implements ListLocation{...}

其次我们构建管理系统类。首先建立CommonEntry实现所有管理系统共有的方法,其次我们分别建立每个系统的接口类,实现上面的地点类。

public class CommonEntry{...}
public interface flightEntry implements TwoLocation
public interface trainEntry implements ListLocation
public interface CourseEntry implements OneLocation
public interface ProcessEntry implements OneLocation

在我们也建立了其他的类(比如时间、资源等)后,就可以将他们按照这种方法加入到implement后面。
接着我们实现这些接口,同时继承父类。

public class flightEntryImpl extends CommonEntry implements flighEntry
{
	private TwoLocation tl;
	...
	//通过引用重写父类方法,实现复用。
	@Override
	public void setLcoation(...){
	tl.setLcoation(...);
	}
}

我们不在管理系统这个具体类里实现地点所需的方法,而是放在地点类里实现,然后我们通过在系统类里声明一个地点类的变量,引用地点类里的方法,实现复用,其他的管理类类似,这样相同的方法我们只需要在具体类中实现一次,然后通过引用到最后的管理系统类中,即可实现复用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值