设计模式-工厂模式

工厂模式UML类图:

设计模式-工厂模式_第1张图片

工厂模式类图角色说明:

  1. Product:抽象产品角色
  2. ConcreteProduct:具体产品角色
  3. Creator:抽象工厂角色
  4. ConcreteCreator:具体工厂角色

工厂模式,主要是对象的创建,提供了一种创建对象的方式,而无需指定要创建的具体类。

以支付举例,我们要实现接入微信和支付宝支付。

一、抽象工厂类

package com.meng.pay.strategy.factory;


public abstract class AbstractPayFactory {
	public abstract T getPayByType(Integer payType);
}

二、具体工厂类

package com.meng.pay.strategy.factory;

import com.meng.pay.strategy.AlipayStrategy;
import com.meng.pay.strategy.PayStrategyInterface;
import com.meng.pay.strategy.WechatStrategy;
import org.springframework.stereotype.Component;

@Component
public class PayFactory extends AbstractPayFactory {

    @Override
    public PayStrategyInterface getPayByType(Integer payType) {
        if(payType == 1){
            return new AlipayStrategy();
        }else if(payType == 2){
            return new WechatStrategy();
        }else{
            throw new UnsupportedOperationException("payType not supported!");
        }

    }
    
}

三、抽象产品类

package com.meng.pay.strategy;

import com.meng.model.Order;

public interface PayStrategyInterface {
    String pay(Order order);
}

四、具体产品类

支付宝支付实现类:

package com.meng.pay.strategy;

import com.meng.model.Order;

public class AlipayStrategy implements PayStrategyInterface{
    @Override
    public String pay(Order order) {
        return "Alipay pay success!";
    }
}

微信支付实现类:

package com.meng.pay.strategy;

import com.meng.model.Order;

public class WechatStrategy implements PayStrategyInterface{
    @Override
    public String pay(Order order) {
        return "Wechat pay success!";
    }
}

你可能感兴趣的:(设计模式,设计模式,java)