A调用B但更改A的内容,若希望B不发生改变,可以创建一个接口,连接A,B
1.创建一个接口M
2.用A实现这个接口
3.通过构造函数把接口传到B中,在B中使用接口方法
(或者使用队列,在B中设置一个ADD方法)
4.在A中实例化B,并把A作为M接口传入B(队列:把A加入B),这样在修改A时,无需修改B的内容,在B中使用的M方法即为A中实现的方法。
//接口
public interface MsgListener {
public void recvMsg(String msg);
}
/**
* 计时
* @author Administrator
*
*/
public class Time extends Thread{
//接口
private MsgListener listener;
//接口队列
private ArrayList<MsgListener> listeners=new ArrayList<MsgListener>();
//向接口队列中添加接口
public void addListener(MsgListener listener){
listeners.add(listener);
}
public void run(){
//计时
while(true){
try {
sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
for(int i=0;i<listeners.size();i++){
MsgListener l=listeners.get(i);
l.recvMsg(""+System.currentTimeMillis());
}
}
}
}
/**
* 主函数
* @author zll
* 在ui中进行修改时,无需变动time中的内容
*/
public class TimeUI implements MsgListener{
JLabel label;
//基本界面
public void initUI(){
JFrame jf=new JFrame();
jf.setDefaultCloseOperation(3);
jf.setLayout(new FlowLayout());
jf.setSize(500, 500);
label=new JLabel();
jf.add(label);
jf.setVisible(true);
}
public void recvMsg(String msg) {
//显示msg
label.setText(msg);
}
public static void main(String[] args){
TimeUI ui1=new TimeUI();
ui1.initUI();
Time time=new Time();
//在time 中添加接口(ui),在time的有关接口的方法中,用ui中的实例方法
time.addListener(ui1);
time.start();
}
}
分享到:
相关推荐
嵌入式系统的复杂性和多样性在现代工业应用中日益显著,尤其体现在接口类型和接口间的关联性上。这些接口包括但不限于串行通信(如UART, SPI, I2C)、网络接口(如Ethernet, WiFi, Bluetooth)、CAN总线、USB以及...
通过重试、幂等性和操作日志记录等手段,可以有效地降低数据不一致的风险。然而,对于某些特殊情况,可能需要人工干预,这强调了系统设计时应考虑到故障恢复和异常处理的能力。了解和实施这些策略对于构建健壮的...
在编程领域,接口是一个至关重要的概念,尤其是在面向...通过接口,我们可以让代码更加模块化,降低耦合度,提高代码复用性和可扩展性。在实际项目中,无论是小型应用还是大型企业级系统,接口都是不可或缺的一部分。
5. **提高可扩展性**:通过拆分接口,我们可以更容易地添加新的功能,因为只需要扩展相应的接口,而不会影响其他接口及其使用者。 6. **代码复用**:较小的接口更易于重用,因为它们通常代表了一个明确的职责,这...
10. **合规性**:接口服务需遵守航空业的相关法规和政策,如旅客隐私保护、数据合规性等。 综上所述,机票接口和机票查询接口在旅游科技领域起着至关重要的作用,而免费机票接口则为开发者提供了低成本的试验和学习...
目的是确保所有相关人员对软件接口的理解一致,降低沟通成本,提高开发效率,减少因接口设计不明确导致的错误和冲突。 2. **范围**: 范围通常包括接口设计涉及的系统、模块或服务,以及接口将如何在这些组件间...
这里我们将深入探讨接口管理的重要性和相关文档模版。 首先,接口管理的目标在于规范和优化软件组件之间的通信,它涵盖了接口的设计、实施、测试和维护。接口设计阶段需要定义接口的功能性、非功能性需求,包括数据...
- 分析开源项目中的接口设计,可以学习到如何合理划分职责、降低耦合度以及提高系统扩展性。 通过上述讨论,我们可以看到接口在软件开发中的重要地位。理解并熟练运用接口设计,能够提升代码的可维护性和可扩展性...
军用软件接口设计规范是确保军事系统间无缝通信与数据交换的关键性文件。在复杂的军事环境中,软件接口...通过遵循这些规范,可以显著降低系统间的集成难度,增强系统的可靠性和安全性,从而更好地支持军事任务的执行。
5. **合理组合接口**:在某些情况下,可能需要通过接口继承来组合小接口,以便客户端能方便地使用一组相关的方法。 总的来说,接口隔离原则是软件设计中的一个重要指南,它推动我们创建更加模块化、灵活和易于维护...
API接口模板是软件开发...使用API接口模板可以降低开发成本,提高团队协作效率,使得接口设计更加规范和易用。在实际开发中,可以使用诸如Swagger、API Blueprint等工具来生成和管理API接口模板,确保其质量和一致性。
一致性的接口则使得整个系统的风格统一,降低了学习成本。 实现部分涉及到具体的函数实现和数据结构的管理。在C语言中,我们需要注意内存管理,包括动态内存分配和释放,以防止内存泄漏。同时,良好的错误处理机制...
通过接口,可以实现代码重用、降低耦合度并支持多态性。理解接口的基本概念及其在实际编程中的应用对于编写高质量的软件至关重要。无论是初学者还是经验丰富的开发者,都应该掌握接口的相关知识,以便更好地利用这一...
接口如同一座桥梁,使得客户端(APP)能够发送请求,获取所需数据或执行特定操作,而服务器则通过响应这些请求来提供服务。本篇文章将深入探讨APP接口开发的相关知识点。 首先,我们来看“redis”这个标签。Redis是...
这种方式提高了代码的可读性和可维护性,使得BroadcastReceiver成为一个独立的模块,可以被多个Activity复用,同时降低了不同组件间的耦合度。在实际项目中,还可以考虑使用依赖注入框架(如Dagger2)或事件总线(如...
接口自动化测试指导方案 一、接口测试简介 接口测试是测试系统组件间接口的一种测试,主要用于检测外部系统与...对接口测试而言,持续集成自动化是核心内容,通过自动化的手段才能有效降低成本,提高接口测试的价值。
QQ易语言留言接口是一种在易语言编程环境下与QQ平台交互的模块,允许开发者通过编程实现向QQ空间留言的功能。易语言是一种中文编程语言,旨在降低编程门槛,让普通用户也能进行程序开发。这个接口简化了与QQ接口的...
如果某些需求与合格性方法或系统需求的可追踪性相关,但未在相应章节中提供,应在这里进行注解。 - 接口标识和接口图:为每个接口提供项目唯一标识符,描述接口实体,可能包括接口图,以展示各实体之间的交互。 ...
下面将详细讨论音乐平台接口的相关知识点。 1. **接口定义**: 接口在编程中是一个合同或规范,它定义了不同组件之间交互的方式。音乐平台接口是这些组件(如音乐播放器、推荐系统、社交媒体等)连接到音乐服务...
本文将深入探讨“最新免签约到账接口”、“支付宝免签约即时到账接口”以及与之相关的扫码支付技术。 一、免签约到账接口 免签约到账接口是指开发者无需与支付平台签订正式合同,就能直接使用其提供的API来实现...