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

    1.简单工厂模式

        简单工厂模式又称作静态工厂模式。简单工厂模式的原理实质上是由一个工厂类根据传入的参数,动态去确定哪一个产品(这些产品继承父类或是接口)

        该模式包含的角色与职责:

          工厂:它是简单工厂的核心,负责创建所有实例的逻辑,工厂类可以被外界直接调用,创建所需要的对象;

          抽象产品:负责描述所有实例所共有的接口

          具体产品:简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。

          缺点:在工厂类中集中了所有实例的创建逻辑,违反了高内聚责任分配原则,将全部创建逻辑集中到了一个工厂类中;对系统的维护和扩展不利;

    实例:

         抽象产品角色:      

      package com.xiaolin;

       public interface Car {
           public void drive();
     }

      具体产品角色1:

      

    package com.xiaolin;

    public class Bicycle implements Car {

       @Override
         public void drive() {
         System.out.println("Bicycle");
       }

    }

    具体产品角色2:

    package com.xiaolin;

    public class Bus implements Car {

      @Override
      public void drive() {
          System.out.println("bus");
      }

    }

    工厂角色:

    package com.xiaolin;

    public class Factory {
      public static Car getCar(String name){
       if(name.equalsIgnoreCase("bus")){
       return new Bus();
    }
      else{
         return new Bicycle();
      }
    }
    }

    测试类:

    package com.xiaolin;

    import org.junit.Test;

    public class Test1 {

    @Test
    public void test() {
     Car car = Factory.getCar("bus");
       car.drive();
    }

    }

    测试结果:

     

  • 相关阅读:
    基本技能训练之线程
    关于UEditor的使用配置(图片上传配置)
    PAT 乙级练习题1002. 写出这个数 (20)
    codeforces 682C Alyona and the Tree DFS
    codeforces 681D Gifts by the List dfs+构造
    codeforces 678E Another Sith Tournament 概率dp
    codeforces 680E Bear and Square Grid 巧妙暴力
    codeforces 678D Iterated Linear Function 矩阵快速幂
    codeforces 679A Bear and Prime 100 交互
    XTUOJ 1248 TC or CF 搜索
  • 原文地址:https://www.cnblogs.com/xiaolin-peter/p/6905751.html
Copyright © 2011-2022 走看看