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分支
  • 相关阅读:
    oracle中函数和存储过程的区别和联系
    oracle系统函数(日期函数)
    触发器
    初次使用集合
    框架结构中同时改变多个框架内容,并显示两个页面
    借贷记账法的原理
    IIS7对json支持
    SqlHelper和数据访问层
    在easyui datagrid中formatter数据后使用linkbutton
    jQuery 添加/移除CSS类
  • 原文地址:https://www.cnblogs.com/ldqwyl/p/2031604.html
Copyright © 2011-2022 走看看