1:被代理
1
2
3
4
5
6
7
8
9
10
11
12
|
package com.fz.proxy.staticProxy; /** *
抽象角色:提供代理角色和真实角色对外提供的公共方法 */ public interface Star
{ void confer(); //面谈 void signContract(); //签合同 void bookTicket(); //订票 void sing(); //唱歌 void collectMoney(); //收尾款 } |
|
真实角色实现类:这里的真实角色中其实只做了一个唱歌的操作,这是真实角色真正的业务逻辑部分
2:真实
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
package com.fz.proxy.staticProxy; /** *
真实角色(明星艺人): */ public class RealStar implements Star{ @Override public void confer()
{ System.out.println( "RealStar.confer()" ); } @Override public void signContract()
{ System.out.println( "RealStar.signContract()" ); } @Override public void bookTicket()
{ System.out.println( "RealStar.bookTicket()" ); } @Override public void sing()
{ System.out.println( "张学友.sing()" ); //真实角色的操作:真正的业务逻辑 } @Override public void collectMoney()
{ System.out.println( "RealStar.collectMoney()" ); } } |
package
com.fz.proxy.staticProxy;
/**
*
代理角色(明星经纪人):
*/
public
class
ProxyStar
implements
Star{
private
Star
star;
//真实对象的引用(明星)
@Override
public
void
confer()
{
System.out.println(
"ProxyStar.confer()"
);
}
@Override
public
void
signContract()
{
System.out.println(
"ProxyStar.signContract()"
);
}
@Override
public
void
bookTicket()
{
System.out.println(
"ProxyStar.bookTicket()"
);
}
@Override
public
void
sing()
{
star.sing();
//真实对象的操作(明星唱歌)
}
@Override
public
void
collectMoney()
{
System.out.println(
"ProxyStar.collectMoney()"
);
}
public
ProxyStar(Star
star) {
//通过构造器给真实角色赋值
this
.star
= star;
}
}
public
static
void
main(String[]
args) {
Star
real =
new
RealStar();
Star
proxy =
new
ProxyStar(real);
proxy.confer();
proxy.signContract();
proxy.bookTicket();
proxy.sing();
//真实对象的操作(明星唱歌)
proxy.collectMoney();
}