工厂设计模式:
是Java用的最多的一种设计模式
在接口与具体子类之间加入一个过度端
案例:
class FactoryDemo
{
public static void main(String[] args)
{
Fruit f = null;
f = Factory.get("橘子");
f.eat();
}
}
{
public static void main(String[] args)
{
Fruit f = null;
f = Factory.get("橘子");
f.eat();
}
}
interface Fruit
{
public void eat();
}
{
public void eat();
}
class Apple implements Fruit
{
public void eat()
{
System.out.println("吃苹果");
}
}
{
public void eat()
{
System.out.println("吃苹果");
}
}
class Orange implements Fruit
{
public void eat()
{
System.out.println("吃橘子");
}
}
{
public void eat()
{
System.out.println("吃橘子");
}
}
class Factory//工厂类
{
public static Fruit get(String name)
{
Fruit f = null;
if("苹果".equals(name))//这里不能把name写在前面,否者会出现空指针异常
{
f = new Apple();
}
if("橘子".equals(name))
{
f = new Orange();
}
return f;
}
}
{
public static Fruit get(String name)
{
Fruit f = null;
if("苹果".equals(name))//这里不能把name写在前面,否者会出现空指针异常
{
f = new Apple();
}
if("橘子".equals(name))
{
f = new Orange();
}
return f;
}
}
代理类设计模式:
提高他的安全性。
用一个代理主题来操作真实主题
案例:
class ProxyDemo
{
public static void main(String[] args)
{
ProxyCl p = new ProxyCl(new Real());
p.browse();
}
}
{
public static void main(String[] args)
{
ProxyCl p = new ProxyCl(new Real());
p.browse();
}
}
interface Net
{
public void browse();
}
{
public void browse();
}
class Real implements Net//真真实现功能的类
{
public void browse()
{
System.out.println("上网了");
}
}
{
public void browse()
{
System.out.println("上网了");
}
}
class ProxyCl implements Net//代理类,代理类可以实现更多的辅助功能
{
private Net net;
public ProxyCl(Net net)
{
this.net = net;
}
public boolean check()
{
boolean inf = true;
return inf;
}
{
private Net net;
public ProxyCl(Net net)
{
this.net = net;
}
public boolean check()
{
boolean inf = true;
return inf;
}
public void browse()
{
this.check();
this.net.browse();
}
}
{
this.check();
this.net.browse();
}
}