博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
动态工厂模式代码实例
阅读量:4662 次
发布时间:2019-06-09

本文共 2001 字,大约阅读时间需要 6 分钟。

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

  

转载于:https://www.cnblogs.com/cyjch/archive/2012/02/06/2340428.html

你可能感兴趣的文章
MeayunDB-高性能分布式内存数据库
查看>>
反射 模板赋值
查看>>
【读书】领导力的5个层次-认同
查看>>
Tomcat创建HTTPS访问,java访问https
查看>>
Matlab实现IIR数字滤波器设计
查看>>
java常见异常
查看>>
手动添加PopMenu出现的问题
查看>>
Linux 远程桌面 访问 WIndows
查看>>
SQLServer存储过程自制数据字典
查看>>
TCP的粘包问题
查看>>
树上有十只鸟,开枪打死一只,还剩几只?
查看>>
随机生成汉字(摘录保存的代码)
查看>>
敢于面对惨淡的人生
查看>>
【bzoj 1119】 [POI2009] SLO(置换群)
查看>>
leetcode[19]Remove Nth Node From End of List
查看>>
Spring 系列: Spring 框架简介
查看>>
DataTable转换成IList
查看>>
web开发的模式
查看>>
【深入ASP.NET原理系列】--Asp.Net Mvc和Asp.Net WebForm实际上共用一套ASP.NET请求管道...
查看>>
Windows下搭建PHP开发环境(Apache+PHP+MySQL)
查看>>