发布时间:2025-12-10 11:33:41 浏览次数:7
抽象工厂(Abstract Factory)模式是一种工厂模式。用一个接口类中的不同方法创建不同的产品。
为了便于理解,先打个比方:
将老虎、狮子、猴子比作三个抽象产品的接口类,也就是有3个产品等级。
老虎又分动物园的老虎、野生的老虎 — 比作具体产品
狮子又分动物园的狮子、野生的狮子 — 比作具体产品
猴子又分动物园的猴子、猴子的猴子 — 比作具体产品
动物园的动物比作一个产品族,野生的动物比作另外一个产品族,共2个产品族。
抽象工厂模式就是用一个接口中的三个方法分别创建老虎、狮子、猴子。
具体工厂实现抽象工厂,对应有两个具体工厂:动物园具体工厂、野生具体工厂。
动物园具体工厂生产动物园老虎、动物园狮子、动物园猴子。
野生具体工厂生产野生老虎、野生狮子、野生猴子。
概况起来说:
抽象工厂模式涉及如下角色:
老虎接口:
package com.thb;public interface Tiger {}狮子接口:
package com.thb;public interface Lion {}猴子接口:
package com.thb;public interface Monkey {}动物园老虎:
package com.thb;public class ZooTiger implements Tiger {}动物园狮子:
package com.thb;public class ZooLion implements Lion {}动物园猴子:
package com.thb;public class ZooMonkey implements Monkey {}野生老虎:
package com.thb;public class WildTiger implements Tiger {}野生狮子:
package com.thb;public class WildLion implements Lion {}野生猴子:
package com.thb;public class WildMonkey implements Monkey {}动物园工厂:
package com.thb;public class ZooFactory implements Factory {@Overridepublic Tiger createTiger() {return new ZooTiger();}@Overridepublic Lion createLion() {return new ZooLion();}@Overridepublic Monkey createMonkey() {return new ZooMonkey();}}野生工厂:
package com.thb;public class WildFactory implements Factory {@Overridepublic Tiger createTiger() {return new WildTiger();}@Overridepublic Lion createLion() {return new WildLion();}@Overridepublic Monkey createMonkey() {return new WildMonkey();}}