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();//然后代理就开始上网
}
}
|
|