JAVA 接口到底能做什么与JAVA监听器的实现

本文探讨了JAVA接口在设计和实际应用中的作用,强调了面向接口开发以实现系统解耦和降低冗余代码。通过实例展示了如何使用接口作为参数来选择不同的实现类,以简化开发和维护。此外,文章还介绍了如何利用接口实现监听器,通过事件传递来解决监听问题,进一步阐述了JAVA接口的灵活性和实用性。
摘要由CSDN通过智能技术生成

网上理论型选手太多,收集了半天才有了一些自己的理解。

在我看来接口用处十分强大:

从设计理论及研发上看有两个用途1、面向接口开发,更容易实现系统解剖;2、抽象具象化程序类,减少开发时候的冗余代码,解耦。

实际应用上开,接口可以作为固化参数,选择实现类的作用。说的有点抽象,具体一点,举个可以反思的例子:

抽象一个接口执行数据入库操作

interface int_instert{

void insert(T);

}

然后实现两个接口实现的service

class A  implements int_instert{

@Override

void insert(T){

    //方法中向表A插入数据

}

}

 

class B  implements int_instert{

@Override

void insert(T){

    //方法中向表B插入数据

}

}

那么在我们开发的时候,经常碰到需要对应不同逻辑选择到底是用A或是B类(ps:如果这个时候你直接用DAO层进入逻辑,后期维护起来非常困难,耦合度太高),这时,我们就可以使用接口进行选择执行类了。方法如下:

先写一个事件:

class c{

private int_instert int;

public void register(int_instert int){

     this.int=int;//这里未来调用的时候就可以注入A或者B类了

}

public void dosomething(){

   this.int.insert();//当注入了A或者B类后,这个方法就自动的指向了A或B类中的insert方法

}

}

再调用的时候,实际上只需要实现事件C类即可

C c = new c();

c.register(A/B);//选择你需要用的实现方法

c.inster();//这里就可以自动的使用选择好的类中方法。

 

很多人对接口不理解还是因为项目做的少,对后期修改等问题理解的不深入,后期面对大量耦合,阅读起来非常困难,然而使用接口可以解决阅读程序的问题,加快对程序的理解,并且也降低了耦合,例如需要调整AB中的方法,但调整量非常大至于会影响到现有业务的时候,这时,仅仅需要重新编写一份D类,注入的时候选择D类即可,其他的地方都不需要修改。这还是非常适合后期及多人团队的。

 

写到这里应该对接口算是有个大概理解了,到这里另外增加一个概念,就是监听的概念;

listener的整个思路还是没有跳脱事件传递,接口既然可以做到对象的注入,实际上就可以作为事件对象传递,这样一类也就解决了监听的问题。有点抽象?

具体:

前面的案例里是吧A或B类作为方法类注入,再监听里,我们新建一个事件E类实体:

class e{

@geter @seter

private C c;//这个时候我们把C作为事件源,就是说,一切操作C类的事件都作为触发器使用

construct()....//省略了

}

再回到C类方法中:

class c{

private int_instert int;

public void register(int_instert int){

     this.int=int;//这里未来调用的时候就可以注入A或者B类了

}

public void dosomething(){

if(int !=null){//当产生事件时

E e=new e(this);//新事件纪录

this.int.insert();//当注入了A或者B类后,这个方法就自动的指向了A或B类中的insert方法

}   

}

}

这样也就完成了监听器的建立,如果有需要,把e参数一起送给A或者B类,可以实现事件的关联,数据的统一传递。

接口是一个规范没错,但是再JAVA中综合使用上下文及反射的原理,可以实现非常出乎意料的功能。

都是手写,希望没有什么地方有错误。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值