工厂设计模式
interface Fruit{
public void eat();
}
class Apple implements Fruit{
public void eat(){
System.out.println("eating apple.");
}
}
class Orange implements Fruit{
public void eat(){
System.out.println("eating orange.");
}
}
class Factory {
public static Fruit getInstance(String className){
if("apple".equals(className)){
return new Apple();
}else if("orange".equals(className)){
return new Orange();
}else{
return null;
}
}
}
public class Demo5{
public static void main(String args [] ){
Fruit p =Factory.getInstance("apple");
p.eat();
}
}
代理设计模式
interface Subject{
public void make();
}
class RealSubject implements Subject{
public void make(){
System.out.println("核心主题");
}
}
//代理设计
class ProxySubject implements Subject{
private Subject subject;
public ProxySubject(Subject subject){//多态
this.subject = subject;
}
public void prepare(){
System.out.println("准备");
}
public void destory(){
System.out.println("结束");
}
public void make(){
this.prepare();
this.subject.make();
this.destory();
}
}
public class TestDemo{
public static void main(String args[]){
Subject sub = new ProxySubject(new RealSubject());//向上传递
sub.make();
}
}