zoukankan      html  css  js  c++  java
  • 动态工厂模式代码实例

    package net.esrib.Factory;
    
    interface Car{ //车的接口类
        public void run();
        public void stop();
      }
    
    class Benz implements Car{ //奔驰车类
        public void run(){
          System.out.print("Benz 开动了。。。");
        }
        public void stop(){
          System.out.print("Benz 停车了。。。");
        }
    }
    
      class Ford implements Car{ //福特车类
          public void run(){
            System.out.print("Ford 开动了。。。");
          }
          public void stop(){
            System.out.print("Ford 停车了。。。");
          }
      }
    
      class BigBus implements Car{ //大巴车类
          public void run(){
            System.out.print("大巴车 开动了。。。");
          }
          public void stop(){
            System.out.print("大巴车 停车了。。。");
          }
      }
    
      class MiniBus implements Car{ //小巴车类
          public void run(){
            System.out.print("小巴车 开动了。。。");
          }
          public void stop(){
            System.out.print("小巴车 停车了。。。");
          }
      }
    
    interface AbstractFactory{
      //只是一个概念,没有任何方法
    }
    class CarFactory implements AbstractFactory{//造小汽车的工厂
      public Car getCar(String type){
        Car c=null;
        try {
         //通过JAVA的反射机制实例化实现类,给出完整的 “包.类”名称
         //这里要类型转换
         c=(Car)Class.forName("net.esrib.Factory.FactoryDemo02."+type).newInstance();
        }
        catch (ClassNotFoundException ex) {
        }
        catch (IllegalAccessException ex) {
        }
        catch (InstantiationException ex) {
        }
        return c;
      }
    }
    
    class BusFactory implements AbstractFactory{//造巴士汽车的工厂
      public Car getBus(String type){
        Car c=null;
        try {
         //通过JAVA的反射机制实例化实现类,给出完整的 “包.类”名称
         //这里要类型转换
         c=(Car)Class.forName("net.esrib.Factory.FactoryDemo02."+type).newInstance();
        }
        catch (ClassNotFoundException ex) {
        }
        catch (IllegalAccessException ex) {
        }
        catch (InstantiationException ex) {
        }
        return c;
      }
    }
    
    public class FactoryDemo02 {
      public static void main(String [] args){
        //生产小汽车
        /*
        CarFactory cf=new CarFactory();
        Car c=null;
        c=cf.getCar("Ford");
        c.run();
        c.stop();
        */
       
        // 生产巴士汽车
        BusFactory bf=new BusFactory();
        Car c=null;
        c=bf.getBus("BigBus");
      }
    }
    

      

  • 相关阅读:
    leetcode刷题 650~
    leetcode刷题 633~
    发送udp报文
    SIP (Session Initiation Protocol) 协议
    你所不知道的replace
    uni-app(六)生成海报图片路径问题
    uni-app(五)小程序的一些注意事项,踩坑
    uni-app(四)小程序里的vuex
    uni-app(三)组件、插件使用,引入字体
    uni-app(二)接口请求封装,全局输出api
  • 原文地址:https://www.cnblogs.com/cyjch/p/2340428.html
Copyright © 2011-2022 走看看