package 抽象工厂;
/**
* 描述:
* 抽象工厂
*
* @author 小纸人
* @create 2019-03-10 21:30
*/
//两个冰激凌接口
//大份
interface BigIceCream{
public void taste();
}
//小份
interface SmallIceCream{
public void taste();
}
//三种口味 分大小
//苹果味
class BigAppleIceCream implements BigIceCream{
@Override
public void taste() {
System.out.println("BigAppleIceCream");
}
}
class SmallAppleIceCream implements SmallIceCream{
@Override
public void taste() {
System.out.println("SmallAppleIceCream");
}
}
//橘子味
class BigOrangeIceCream implements BigIceCream{
@Override
public void taste() {
System.out.println("BigOrangeIceCream");
}
}
class SmallOrangeIceCream implements SmallIceCream{
@Override
public void taste() {
System.out.println("SmallOrangeIceCream");
}
}
//香蕉味
class BigBananaIceCream implements BigIceCream{
@Override
public void taste() {
System.out.println("BigBananaIceCream");
}
}
class SmallBananaIceCream implements SmallIceCream{
@Override
public void taste() {
System.out.println("SamllBananaIceCream");
}
}
//工厂接口
interface IceCreamFactory{
//创建大份
public BigIceCream createBigIceCream();
//创建小份
public SmallIceCream createSmallIceCream();
}
//三个工厂 不同口味
//苹果味
class AppleIceCreamFactory implements IceCreamFactory{
@Override
public BigAppleIceCream createBigIceCream() {
return new BigAppleIceCream();
}
@Override
public SmallAppleIceCream createSmallIceCream() {
return new SmallAppleIceCream();
}
}
//橘子味
class OrangeIceCreamFactory implements IceCreamFactory{
@Override
public BigOrangeIceCream createBigIceCream() {
return new BigOrangeIceCream();
}
@Override
public SmallOrangeIceCream createSmallIceCream() {
return new SmallOrangeIceCream();
}
}
//香蕉味
class BananaIceCreamFactory implements IceCreamFactory{
@Override
public BigBananaIceCream createBigIceCream() {
return new BigBananaIceCream();
}
@Override
public SmallBananaIceCream createSmallIceCream() {
return new SmallBananaIceCream();
}
}
//主类
public class Main {
public static void main(String[] args){
System.out.println("抽象工厂:");
//生产苹果味的冰激凌
AppleIceCreamFactory appleIceCreamFactory = new AppleIceCreamFactory();
BigAppleIceCream bigAppleIceCream = appleIceCreamFactory.createBigIceCream();
bigAppleIceCream.taste();
SmallAppleIceCream smallAppleIceCream = appleIceCreamFactory.createSmallIceCream();
smallAppleIceCream.taste();
//生产橘子味的冰激凌
OrangeIceCreamFactory orangeIceCreamFactory = new OrangeIceCreamFactory();
BigOrangeIceCream bigOrangeIceCream = orangeIceCreamFactory.createBigIceCream();
bigOrangeIceCream.taste();
SmallOrangeIceCream smallOrangeIceCream = orangeIceCreamFactory.createSmallIceCream();
smallOrangeIceCream.taste();
//生产香蕉味的冰激凌
BananaIceCreamFactory bananaIceCreamFactory = new BananaIceCreamFactory();
BigBananaIceCream bigBananaIceCream = bananaIceCreamFactory.createBigIceCream();
bigBananaIceCream.taste();
SmallBananaIceCream smallBananaIceCream = bananaIceCreamFactory.createSmallIceCream();
smallBananaIceCream.taste();
}
}
抽象工厂
最新推荐文章于 2024-07-30 10:58:32 发布