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");
      }
    }
    

      

  • 相关阅读:
    Tcp抓包以及Tcp状态
    Wireshark抓包使用指南
    服务端tcp syn无响应,无回复
    升级openssh
    平滑升级Nginx
    Memcached 未授权访问漏洞修复
    服务端高并发分布式架构演进之路
    es索引查询与删除
    申请elasticsearch中x-pack插件许可证及授权
    独立安装ab压力测试工具及测试nginx性能
  • 原文地址:https://www.cnblogs.com/cyjch/p/2340428.html
Copyright © 2011-2022 走看看