zoukankan      html  css  js  c++  java
  • 简单工厂模式

    一,概述
      在软件开发的过程中经常会有这种需求,为了达到不同的效果和目的,经常变换类对象,而这些类所要实现的接口对象相对稳定,这种情况就要考虑到简单工厂模式
    二,简单工厂模式的组成:
    1.工厂类:负责根据不同的逻辑产生不同的对象实例
    2.抽象产品类:一般是具体产品类要继承的父类或者是要实现的接口
    3.具体产品类:继承了父类的子类或者是实现了接口的子类,是工厂类要创建的类
    三,实例解说
     描述:公路的收费系统要根据不同的车型收取不同的费用
    1.定义抽象产品接口:
       public interface Icalcute{
       public double calcuteresutl();
    }
    2.具体产品类实现了抽象产品接口
    //车型为car
     public class car:Icalcute{
      public double calcuteresult()
    {
    return 33;
    }
    }
    //车型为bus
      public class bus:Icalcute{
      public double calcuteresult()
    {
    return 100;
    }
    }
    ........可以有多个车型类
    3.工厂类,根据不同的条件生成不同的车型类
    public calss factory{
    ICalcute cal;
    public Calcute GetTypeobject(string type)
    {
    switch(type)
    {
     
      case "car":
      cal=new car();
      break;
      case "bus":
      cal=new bus();
      break;
      ...........
    }
    return cal;  
    }
    }
    客户端代码
    public void main()
    {
     ICalcute cal;
     factory fac=new factory();
     cal=fac.GetTypeobject("car");
     double fee=cal.calcuteresult();
    }
    缺点:违背了开发-封闭原则,如果要增加一个jeep车的收费,要增加一个jeep类,另外还要修改factory工厂类中的代码,增加一个case分支
  • 相关阅读:
    ThinkPhp框架分页查询和部分框架知识
    tp框架增删改
    WAMP中mysql服务突然无法启动 解决方法
    thinkphp框架 的 链接数据库和操作数据
    php 全局使用laravel的dd和dump
    给centos装图形界面 widowsx
    marquee标签的使用
    微信公众号开发入门教程
    laravel admin引入css js报错 https
    利用Croppie裁剪图片并后台保存
  • 原文地址:https://www.cnblogs.com/ldqwyl/p/2031604.html
Copyright © 2011-2022 走看看