生产瓷砖的人:生产商
代理瓷砖的人:代理商
下面主要:1、定义一个接口(做的事情,可以卖瓷砖这件事)
2、 生产商 这个对象 实现 接口
3、代理商 实现 接口
生产商只管生产,只好找多个代理商来卖瓷砖,
简单的很,直接把生产商的对象传给代理商就行了,
当代理商执行操作时,利用多态原理,其实就是生产商在操作。
package ftypeinfo;
import static net.mindview.util.Print.*;interface InterfaceSell{
void doSell();
void somethingElse(String arg);
}
class manufacturer implements InterfaceSell{
@Override
public void doSell() {
// TODO Auto-generated method stub
print("do something");
}
@Override
public void somethingElse(String arg) {
// TODO Auto-generated method stub
print("somethingElse"+arg);
}
}
class SellProxy implements InterfaceSell{
private InterfaceSell proxied;// 传入了真正的实例
public SellProxy(InterfaceSell proxied)
{this.proxied=proxied;}
@Override
public void doSell() {
// TODO Auto-generated method stub
print("SimpleProxyDemo doSometing");
proxied.doSell();
}
@Override
public void somethingElse(String arg) {
// TODO Auto-generated method stub
print("SimpleProxyDemo doSometing"+arg);
proxied.somethingElse(arg);
}
}
public class SimpleProxyDemo
{
public static void cosumer(InterfaceSell iface)
{
iface.doSell();
iface.somethingElse("bonobo");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
cosumer(new manufacturer());
cosumer(new SellProxy(new manufacturer()));
}
}