黑马程序员技术交流社区
标题:
工厂设计模式、代理设计模式
[打印本页]
作者:
安日成
时间:
2015-5-1 18:58
标题:
工厂设计模式、代理设计模式
1 工厂设计模式:
interface Fruit{
public void eat();
}
class Apple implements Fruit{
public void eat(){
System.out.println("吃苹果");
}
}
class Orange implements Fruit{
public void eat(){
System.out.println("吃橘子");
}
}
class Factory{
public static Fruit getInstance (String classname){
Fruit fru=null;
if(classname.equals("orange")){// 其实就是将子类的new 操作进行转换
fru=new Orange();
}
if(classname.equals("apple")){
fru=new Apple();
}
return fru;
}
}
public class NewDemo{
public static void main(String [] args){
Fruit f=Factory.getInstance("apple");
f.eat();
Fruit b=Factory.getInstance("orange");
b.eat();
}
}
2 代理设计模式
interface Network{
void browse();
}
class Real implements Network{
public void browse(){
System.out.println("上网");
}
}
class Proxy implements Network{
private Network network; // 在任何时候对可以用接口来定义对象 然后根据多态性 不
public Proxy(Network network){ // 不同的传入对象可以调用方法
this.network=network;
}
public void check(){
System.out.println("检查上网用户的合法性");// 增加的功能
}
public void browse(){
this.check();
this.network.browse();
}
}
public class NewDemo{
public static void main(String [] args){
Proxy net=new Proxy(new Real());// 把真实的上网传递给 代理
// Network net=new Proxy(new Real);// 这里真实的上网可以是任何一个继承于接口
// 类的匿名对象
net.browse();//然后代理就开始上网
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2