声明:以下都是博主浅薄的经验之谈,欢迎大家学习交流
- 博主是参考这个视频进行学习总结的:
- 设计模式学习视频(点击我)
- 提取码 : 29oc
- 上类图;学习抽象工厂模式之前需要先了解简单工厂模式和工厂方法模式
- Fruit.java
package com.dyx.design.abstractfactory;
public interface Fruit {
public void getFruit();
}
- Apple.java
package com.dyx.design.abstractfactory;
public abstract class Apple implements Fruit{
public abstract void getFruit();
}
- Banana.java
package com.dyx.design.abstractfactory;
public abstract class Banana implements Fruit {
public abstract void getFruit();
}
- NorthApple.java
package com.dyx.design.abstractfactory;
public class NorthApple extends Apple {
@Override
public void getFruit() {
System.out.println("采集北方苹果");
}
}
- NorthBanana.java
package com.dyx.design.abstractfactory;
public class NorthBanana extends Banana {
@Override
public void getFruit() {
System.out.println("采集北方香蕉");
}
}
- SouthApple.java
package com.dyx.design.abstractfactory;
public class SouthApple extends Apple {
@Override
public void getFruit() {
System.out.println("采集南方苹果");
}
}
- SouthBanana .java
package com.dyx.design.abstractfactory;
public class SouthBanana extends Banana {
@Override
public void getFruit() {
System.out.println("采集南方香蕉");
}
}
- FruitFactory.java
package com.dyx.design.abstractfactory;
public interface FruitFactory {
public Fruit getApple();
public Fruit getBanana();
}
- NorthFruitFactory.java
package com.dyx.design.abstractfactory;
/**
* 描述: 北方产水果的工厂
*/
public class NorthFruitFactory implements FruitFactory {
@Override
public Fruit getApple() {
return new NorthApple();
}
@Override
public Fruit getBanana() {
return new NorthBanana();
}
}
- SouthFruitFactory .java
package com.dyx.design.abstractfactory;
/**
* 描述: 南方产水果的工厂
*/
public class SouthFruitFactory implements FruitFactory {
@Override
public Fruit getApple() {
return new SouthApple();
}
@Override
public Fruit getBanana() {
return new SouthBanana();
}
}
- 运行
package com.dyx.design.abstractfactory;
public class MainClass {
public static void main(String[] args) {
FruitFactory southFactory = new SouthFruitFactory();
Fruit apple = southFactory.getApple();
Fruit banana = southFactory.getBanana();
apple.getFruit();
banana.getFruit();
}
}
- 博主是参考这个视频进行学习总结的:
- 设计模式学习视频(点击我)
- 提取码 : ivtk