类图
代码
public abstract class AbstractPay{ public abstract void pay(); } public class CashPay extends AbstractPay{ public void pay(){ //现金支付处理代码 } } public abstract PayMethodFactory { public abstract AbstractPay getPayMethod(); } public class CashPayFactory extends PayMethodFactory{ public AbstractPay getPayMethod() { return CashPay(); } } PayMethodFactory factory = new CashPayFactory(); AbstractPay payMethod = factory.getPayMethod(); payMethod.pay(); |
角色
- Product: 抽象产品
- ConcreteProduct: 具体产品
- Factory: 抽象工厂
- ConcreteFactory: 具体工厂