java用户调用接口管理_关于接口----java

首先,接口和抽象类不能被实例化,所以不能直接通过new出对象调用其方法。但是接口可以被实现。一旦某个类要实现一个接口,必须要实现接口内所有方法,否则就必须声明为抽象类。

当然实现接口的方法有很多种,都不难理解。但是要想在某种场合使用接口(即真正设置接口来解决问题)是困难的。例如c/s framework中clientConversation层(会话层)收到了来自服务器的消息:服务器异常宕机后,应该关闭客户端。但是这个关闭操作不应在会话层处理,也不应在Client层(管理层)处理。而应由用户(用我的c/s框架去开发APP的人)去做。即这个消息应从会话层传递给用户,用户编写方法,我在会话层调用他编写的方法实现关闭操作。此处很显然要用接口。

我通过用户层new出Client类对象的方式开启客户端(此时是站在用户使用我框架的角度思考),开启后开始连接服务器,连上后通过Client层的方法创建clientConversation的对象来管理客户端与服务器的会话。现在的局面是,会话层和管理层有联系,管理层和用户层有联系,而我要在会话层调用用户写的方法。也许你会想,设置一个接口,里面写一个方法,会话层调用这个方法,用户层实现这个方法,是很轻松的。其实不然,因为clientConversation类是我框架内部的类,它的构造方法是包内有效的,用户没法new出对象,而我们也不可能在clientConversation中产生接口实现类(用户类)的对象。通过传递接口对象和通过对象.set方法设置接口对象的路都走不通(这里说的传递接口的对象是指  将接口实现类的对象赋值给接口类型的变量)。只能借助管理层来处理,因为它是架在这两端的桥梁。

解决方法是:在管理层Client类里添加一个接口类型的成员A,并只提供getA和setA方法。因为是用户层实现了接口,产生了管理层Client类对象,所以可以通过Client类对象调用setA方法将自己的this赋值给管理层成员A。会话层可以事先创建一个Client类型的成员B,在Client类对象产生会话层时,将Client类里的this赋值给会话层成员B,那么通过(B.A.接口方法)就可以在会话层调用用户编写的方法了!

用户层代码:

268dcf557da3dd0a0ef2365b83aeddab.png

管理层代码:

af7bfc6d96bd2f8b505f3136f83dedff.png

会话层代码:

adb9c514c5c3222062619cce47567499.png

接口:

88d81b87478888e7f56b3e7fa9fe3645.png

接口的使用是灵活的,掌握接口最好的方法就是将其运用在具体场景下。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值