抽象工厂设计模式

package 抽象工厂模式;


public interface Fruit {
public void show();

}


package 抽象工厂模式;


public abstract class Apple implements Fruit{
public abstract void show();
}


package 抽象工厂模式;


public abstract class Banana implements Fruit {

public abstract void show();


}


package 抽象工厂模式;


public class SouthFactory implements FruitFactory{


public Apple getApple() {
// TODO 自动生成的方法存根
return new SouthApple();
}


public Banana getBanana() {
// TODO 自动生成的方法存根
return new SouthBanana();
}

}



package 抽象工厂模式;


public class NorthBanana extends Banana{


public void show() {
// TODO 自动生成的方法存根
System.out.println("北方的香蕉");
}

}



package 抽象工厂模式;


public class SouthApple extends Apple{


public void show() {
// TODO 自动生成的方法存根
System.out.println("南方的苹果");
}

}



package 抽象工厂模式;


public class SouthBanana extends Banana{


public void show() {
// TODO 自动生成的方法存根
System.out.println("南方香蕉");
}


}

//以上步骤是设计产品族以及由不同的产品族产生产品

package 抽象工厂模式;


public interface FruitFactory {
//创建生产Apple
public Apple getApple();

//生产Banana
public Banana getBanana();

}

package 抽象工厂模式;


public class SouthFactory implements FruitFactory{


public Apple getApple() {
// TODO 自动生成的方法存根
return new SouthApple();
}


public Banana getBanana() {
// TODO 自动生成的方法存根
return new SouthBanana();
}




}


package 抽象工厂模式;


public class NorthFactory implements FruitFactory{


public Apple getApple() {
// TODO 自动生成的方法存根
return new NorthApple();
}


public Banana getBanana() {
// TODO 自动生成的方法存根
return new NorthBanana();
}


}


package 抽象工厂模式;


public class TestFruitMain {
public static void main(String[] args) {

FruitFactory north_factory=new NorthFactory();//抽象工厂 具体工厂  北方工厂的具体化

Apple north_apple=north_factory.getApple(); //抽象水果        具体水果通过具体工厂产生

Banana north_banana=north_factory.getBanana();

north_apple.show();
north_banana.show();


//增加具体的工厂类 
//简单工厂模式
//抽象工厂模式



FruitFactory south_factory=new SouthFactory();//南方工厂的具体化

Apple south_apple=south_factory.getApple();//由具体的南方工厂产生具体的南方水果

Banana south_banana=south_factory.getBanana();//产生具体的南方香蕉



south_apple.show();
south_banana.show();


}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值