• 在商城系统中使用设计模式简单工厂模式


    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吧。

  • 相关阅读:
    神医,全部的诡异动画,
    显示界面的,调节frame的代码 写到 viewwillappear,
    两个像素,
    人类的心理行为模式,---》阮一峰,
    浅谈IE11--web开发测试
    node中的console
    node服务器重定向
    服务端渲染&&客户端渲染
    node积累
    Apache网页文件目录模板
  • 原文地址:https://www.cnblogs.com/boychen/p/10618868.html
Copyright © 2020-2023  润新知