zoukankan      html  css  js  c++  java
  • Java设计模式之工厂方法(01)

    1,工厂方法:

    使用一个工厂的方法来创建产品。

    1 package WHP;
    2 //产品依赖于抽象
    3 public interface IRunable {
    4     public void Run();
    5 }
    1 package WHP;
    2 //具体实现
    3 public class Car implements IRunable {
    4     public void Run(){
    5         System.out.println("Car running.");
    6     }
    7 }
    1 package WHP;
    2 
    3 public class Bus implements IRunable {
    4     public void Run() {
    5         System.out.println("Bus running.");
    6     }
    7 }
     1 package WHP;
     2 //生产产品的工厂
     3 public class AutoFactory {
     4     public IRunable CreateAuto(String auto) throws Exception {
     5         if (auto == "Car") {
     6             return new Car();
     7         } else if (auto == "Bus") {
     8             return new Bus();
     9         } else {
    10 
    11             throw new Exception("Incorrect auto type");
    12         }
    13     }
    14 }
    package WHP;
    
    import java.util.*;
    import java.io.*;
    //使用模式的代码。
    public class JTest {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            try
            {
            AutoFactory fac=new AutoFactory();
            IRunable a=fac.CreateAuto("Car");
            IRunable b=fac.CreateAuto("Bus");
            
            a.Run();
            b.Run();
            }
            catch(Exception ex)
            {
                System.out.println(ex.getMessage());
            }
        }
    }

     工厂方法有其他改进方式:

    改进1:将传入字符串的生产方法,改进为为每种产品写一个方法,返回对应的产品。这样就不会因为传入字符串不正确而出错。

    改进2:将工厂方法设置为静态,不用每次创建工厂了。

  • 相关阅读:
    选择语句(if else) 习题(2017/12/1)
    Java代码空格问题
    设置背景图片
    寄存器
    8086微处理器的组成和工作原理
    8086引脚
    换行的训练
    彩票 双色球 36选7
    函数
    字符串
  • 原文地址:https://www.cnblogs.com/netact/p/3830298.html
Copyright © 2011-2022 走看看