zoukankan      html  css  js  c++  java
  • 在商城系统中使用设计模式简单工厂模式

    1.简单工厂模式是属于创建型模式,又叫做静态工厂方法模式。
    它的实现方式是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。


    2.简单工厂模式由三种角色组成: 
    (1)工厂角色:简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类的创建产品类的方法可以被外界直接调用,创建所需的产品对象。
    (2)抽象产品角色:简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。 
    (3)具体产品角色:是简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。

    3.场景:在一个商城系统中,用户可以选择三种支付方式,微信支付,支付宝支付,余额支付。

    4.实现:

    我们将创建一个 PaymentMethod 接口和实现 PaymentMethod 接口的实体类。下一步是定义工厂类 PayFactory

    Main是演示我们简单工厂模式的入口。

    UML图如下:

     步骤1.创建接口类

    public interface PaymentMethod {
        void pay();
    }

    步骤2.实现接口类

    public class Alipay implements PaymentMethod {
        @Override
        public void pay() {
            System.out.println("支付宝支付");
        }
    }
    public class BalancePay implements PaymentMethod {
        @Override
        public void pay() {
            System.out.println("余额支付");
        }
    }
    public class WechatPay implements PaymentMethod {
        @Override
        public void pay() {
            System.out.println("微信支付");
        }
    }

    步骤3.创建一个工厂,生成基于给定信息的实体类的对象。

    public class PayFactory {
    
        public PaymentMethod getPayment(String payType){
    
            switch (payType){
    
                case "alipay":
                    return new Alipay();
                case "wechatPay":
                    return new WechatPay();
                case "balancePay":
                    return new BalancePay();
    
                default:
                    System.out.println("支付方式错误");
    
            }
            return null;
    
        }
    
    }

    步骤4.使用该工厂,通过传递类型信息来获取实体类的对象。

    public class Main {
    
        public static void main(String[] args) {
    
            PayFactory payFactory = new PayFactory();
    
            PaymentMethod paymentMethod = payFactory.getPayment("alipay");
    
            paymentMethod.pay();
    
        }
    
    }
     附上demo源码:

    https://github.com/littleStone-chan/design-patternsIn-mall/tree/master/simple-factory

    在工作中,不能灵活的时候设计模式。希望通过这次的学习,可以加深对设计模式对理解。

    接下来会继续整理出自己在工作对时候可以使用对设计模式,不对望指点。如果文章对您有帮助,github给个start吧。

  • 相关阅读:
    java经典入门算法题,小白必备!
    java客房管理小项目,小白练手必备!
    10道java经典算法题,每一题都能提升你的java水平!第二弹!
    活动目录对象属性批量修改工具------ADModify
    CentOS7基于http方式搭建本地yum源
    如何禁用AD OU 下面的邮箱用户的Exchange ActiveSync 和 适用于设备的OWA
    通过组策略禁止有本地管理员权限的域用户更改网络配置
    1 什么是virtual Machine
    写Ansible playbook添加zabbix被监控的对象
    Windows server 安装和配置zabbix agent
  • 原文地址:https://www.cnblogs.com/boychen/p/10618868.html
Copyright © 2011-2022 走看看