/**
代理模式语义:有一个类,然后想对这个类进行增强,把一些控制类放入这个类的某个方法的前后,因为是对方法的扩展,所以把方法变成接口实现插拔
"/
//从某种意义上说两种TimeProxy 都是Tank的代理,这两个都是代理的实现
//比如一个类Tank,想为这个move前后加些逻辑,方面一:继承,就重写他啊
class Tank{
public void move(){
}
}
class TimeProxy extends Tank{
public void move(){
long start = System.currentTimeMillis();//前逻辑
super.move();
long end = System.currentTimeMillis();//后逻辑
System.out.println(end-start);
}
}
//方法二:聚合
class TimeProxy {
Tank t;
public void move(){
long start = System.currentTimeMillis();//前逻辑
t.move();
long end = System.currentTimeMillis();//后逻辑
System.out.println(end-start);
}
}
/*区别是什么:用继承的话,类会随着需求的增加而无限的继承下去
下面看案例:
如果要再有一个log记录怎么办
当然第一种和第二种方法都要写LogProxy,如果我需要先记录日志后记录时间呢
在第一种方法下只能再写一个Log_Time_Proxy
但第二种方法就不用了,让他们都搞一个接口出来,想怎么插就怎么插
*/
class Tank implements Moveable{ //坦克有一个Moveable接口
public void move(){
}
}
class TimeProxy implements Moveable{ //坦克
//Tank t;
Moveable t ;
public TimeProxy (Moveable t){
this.t = t; //接口插槽设置
}
public void move(){
long start = System.currentTimeMillis();//前逻辑
t.move();
long end = System.currentTimeMillis();//后逻辑
System.out.println(end-start);
}
}
class LogProxy implements Moveable{ //坦克
//Tank t;
Moveable t ;
public LogProxy(Moveable t){
this.t = t; //接口插槽设置
}
public void move(){
Log记录//前逻辑
t.move();
}
class Logic{
public static void main(String[] args){
Tank t = new Tank();
TimeProxy time = new TimeProxy(t);
LogProxy log = new LogProxy(time);
log.move();
}
}
/*注意:这里的Moveable t 我把他叫做接口中实体元件架,就相当于插座中的铜片片,这个铜片片可以来接收一个插头一样
implements Moveable-----使得自己可以变成一个标准件实体,自己可以被插入到别人的插槽中,方便赋予别人。我把他叫获得Moveable 插头能力
Moveable t ;
public TimeProxy (Moveable t){
this.t = t; //接口插槽设置
}
这个则是使得自己有一个插孔,有一个铜片片可以接收别人的插入,我把他叫做Moveable插孔能力
*/
分享到:
相关推荐
在现代集成电路设计中,**静态时序分析(Static Timing Analysis,简称STA)**与**逻辑分析**是确保芯片性能和可靠性的关键步骤。本文将深入探讨这些概念及其在设计验证中的应用。 #### 一、静态时序分析(STA) #...
在这种模式下,由于所需的采样带宽较低,逻辑分析仪内部的存储器充当一个缓冲(FIFO),从而允许采集到的数据通过USB接口及时传输到PC端。这种模式下的主要优点是实现了长时间不间断的信号记录,大大提高了数据帧的...
华为作为全球领先的ICT解决方案提供商,其内部培训资料《华为静态时序分析与逻辑设计》为我们提供了一个深入理解这一主题的宝贵资源。下面,我们将详细探讨该主题的知识点。 一、静态时序分析概述 静态时序分析是一...
静态代理是一种代理模式,其主要目的是在不修改原始对象(被代理对象)的基础上,通过一个中间代理类来控制对原始对象的访问。代理类通常会增加额外的功能或控制,如日志记录、权限检查、缓存等,而这些功能对原始...
在情感分析中,我们可以将每个文本映射到一个连续的特征向量,然后通过逻辑回归函数将其转换为概率预测,即该文本属于正面或负面类别的概率。逻辑回归的优势在于计算效率高、易于理解和实现,但可能对非线性关系处理...
为解决这个问题,本文提出基于STM32的逻辑分析仪的设计与实现。设计中采用ST公司的STM32处理器搭建下位机平台,下位机采集各点的电平,以及通过STM32系列的USB接口部件,与上位机构成通信,把采集的数据及时发送给...
在电子工程领域,充气机的绕线及电源插头插座安排装置是设备设计和制造中的重要环节。本文将深入探讨这两个主题,旨在提供全面、详细的行业知识。 首先,我们来了解一下“充气机的绕线”。绕线是电机、变压器和其他...
标题中的“使用matlab开发的M/N逻辑方法,实现航迹起始”指的是在MATLAB环境中,通过M/N逻辑算法来处理航迹初始化的过程。航迹起始是目标跟踪系统中的一个重要环节,它涉及到如何从原始传感器数据中识别并建立目标的...
然后,依据逻辑函数式制作了一个真值表,最后通过真值表分析得出该电路是一个同或逻辑电路。 总结来说,组合逻辑电路因其结构简单且输出仅依赖于当前输入而不受过去事件的影响,在数字电路设计中占有重要地位。掌握...
在电子工程领域,光电合一的电缆、插头和插座是一种重要的连接技术,它结合了光通信和电通信的优势,广泛应用于各种数据传输和信号处理系统。这份“行业资料-电子功用-光电合一的电缆、插头及插座的说明分析”可能是...
在电子技术领域,充电插头、充电插座以及它们之间的连接装置是至关重要的组成部分,尤其在当今这个电力设备无处不在的时代。本资料详尽地介绍了这些元件的基本概念、功能、设计原理以及相互间的配合机制。 首先,让...
在这个特定的压缩包文件“电子政务-带保护器的电源插头插座.zip”中,核心内容可能是关于在电子政务场景下,如何使用带有保护器的电源插头插座来确保设备安全和稳定运行。 标签“资料”表明,这个文件可能包含了一...
### 模糊逻辑系统的C语言实现方法 #### 引言 模糊逻辑作为一种处理不精确信息的有效手段,在控制领域中有着广泛的应用。随着计算机技术的发展,将模糊逻辑理论应用于实际控制系统中变得越来越重要。传统的模糊逻辑...
《便携式视盘机的插座及便携式视盘机外接电池盒的插头》这份行业资料详细探讨了便携式视盘机的重要组成部分——插座与外接电池盒插头的设计、功能以及分析。在当今信息化社会,便携式视盘机因其便携性和多功能性,在...
总结来说,这个实验是一个实践性的项目,旨在让学生亲手设计一个四位ALU,从而加深对计算机硬件基础的理解,掌握逻辑门电路和超前进位技术的应用,以及电路设计和验证的基本流程。通过这样的实验,学生不仅能在理论...
在Python数据分析和...总之,Python在数据分析和机器学习领域提供了丰富的工具和库,使得实现逻辑回归和梯度下降变得相对简单。通过深入学习和实践"chapter09"中的内容,你将能够更好地理解和应用这两种重要的算法。
2. 实验连线如下图所示:连线时应按照如下的方法,对于横排插座,应使排线上的插头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。 3. 当电路已经连接好时,将实验系统与计算机串口...
她通过本文展示了一种简易逻辑分析仪的设计与实现方法,验证了设计的可行性和功能指标基本达到预期设计要求,为逻辑分析仪的普及应用提供了可能。通过这项研究,我们可以了解到基于FPGA的逻辑分析仪在硬件设计、系统...
在实际的实验中,可能需要设计和搭建一个8位ALU的电路模型,这可能涉及使用逻辑门(如AND、OR、NOT和XOR门)以及触发器等基本电子元件。通过模拟和仿真工具,我们可以验证ALU的功能是否正确。 实验报告通常会包括...