浅学设计模式--代理模式

一.代理模式定义

为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。(来自百度百科)

二.代理模式详解

代理模式顾名思义就是一个类代理其他类的行为,但是真正实现的又是被代理类,举个例子:现在好多人做代理,什么包包啦、香水啦、化妆品啦等等。

假设小明个人兼职三个商品的代理A,B,C,我们都知道商品的定价,发货都是由卖家亲自操作的,小明只是卖家和客户之间的媒介。这里小明就是代理类,他进行的发货、定价实际都是由最后的商家进行的。A、B、C就是被代理类。

三.代码详解

1.公共接口

package com.test.proxy;


public interface Star {
public void  business();
public void price();
}

2.实现类

=======被代理类1=======

package com.test.proxy;


public class Gyy implements Star{


@Override
public void business() {
// TODO Auto-generated method stub
System.out.println("Gyy 在谈生意");
}


@Override
public void price() {
// TODO Auto-generated method stub
System.out.println("Gyy 拍戏价格");
}


}

=======被代理类2=======

package com.test.proxy;


public class Zbz implements Star{


@Override
public void business() {
// TODO Auto-generated method stub
System.out.println("Zbz 在谈生意");
}


@Override
public void price() {
// TODO Auto-generated method stub
System.out.println("Zbz 拍戏价格");
}


}

=======代理类==========

package com.test.proxy;


public class Agent implements Star {
private Star star;

public Agent(Star star){
this.star = star;
}
@Override
public void business() {
// TODO Auto-generated method stub
star.business();
}


@Override
public void price() {
// TODO Auto-generated method stub
star.price();
}


}

=======输出结果=====

package com.test.proxy;


public class Test {
public static void main(String[] args) {

Agent agent1 = new Agent(new Gyy());
agent1.business();
agent1.price();
Agent agent2 = new Agent(new Zbz());
agent2.business();
agent2.price();

}
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cross-Attention指的是Transformer架构中的一种注意力机制,它用于混合两个不同嵌入序列的注意力。这两个序列必须具有相同的维度,并且可以是不同的模式形态,比如文本、声音、图像等。在Cross-Attention中,一个序列作为输入的Q,定义了输出的序列长度,而另一个序列提供输入的K和V。 Cross-Attention与Self-Attention不同之处在于,Cross-Attention的输入来自不同的序列,而Self-Attention的输入来自同一个序列。但除此之外,它们的基本原理是一致的。在Transformer中,Cross-Attention通常是指编码器和解码器之间的交叉注意力层。在这一层中,解码器会对编码器的输出进行注意力调整,以获得与当前解码位置相关的编码器信息。具体的计算过程包括:编码器输入(通常是来自编码器的输出)和解码器输入(已生成的部分序列)被分别表示为enc_inputs和dec_inputs。解码器的每个位置会生成一个查询向量(query),用来在编码器的所有位置进行注意力权重计算。编码器的所有位置会生成一组键向量(keys)和值向量(values)。通过对查询向量和键向量进行点积操作,并通过softmax函数获得注意力权重。注意力权重与值向量相乘,并对结果进行求和,得到编码器调整的输出。这样,Cross-Attention机制帮助解码器能够有效地建模当前生成位置的上下文信息。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [【科研】浅学Cross-attention?](https://blog.csdn.net/MengYa_Dream/article/details/126688503)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [交叉注意力机制CrossAttention](https://blog.csdn.net/m0_63097763/article/details/132293568)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值