设计模式-工厂模式

本文介绍了工厂模式在UML类图中的应用,通过抽象工厂类、具体工厂类、抽象产品接口和具体产品实现,展示了如何在支付场景中使用此模式,区分了不同支付方式的创建和管理。
摘要由CSDN通过智能技术生成

工厂模式UML类图:

工厂模式类图角色说明:

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

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

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

一、抽象工厂类

package com.meng.pay.strategy.factory;


public abstract class AbstractPayFactory<T> {
	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<PayStrategyInterface> {

    @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!";
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值