欢迎来到天天文库
浏览记录
ID:40313359
大小:26.72 KB
页数:8页
时间:2019-07-30
《设计模式之4 工厂模式》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、工厂模式的核心在于new.也就是说,不让使用者直接new一个对象。而是通过一个getInstance来得到这个对象。也就是说,在new的时候,要有权限检查怎么办,有没有这方面的资质?那么对于工厂生成这个对象的时候,不能随便new。1.单例模式packagecom.bjsxt.dp.factory;importjava.util.ArrayList;importjava.util.List;publicclassCarimplementsMoveable{//单例模式,定义为private的方法privatestaticCarcar=newCar();//多例模式,就是用一个数组来
2、存放好多car//privatestaticListcars=newArrayList();//构造方法为静态privateCar(){}//静态工厂模式publicstaticCargetInstance(){returncar;}publicvoidrun(){System.out.println("冒着烟奔跑中car.......");}}2.简单工厂模式有抽象类VehicleFactory:packagecom.bjsxt.dp.factory;//交通工具的工厂,相当于一个interface,用来实现多态。//在test当中为了灵活实现。public
3、abstractclassVehicleFactory{//在这里同样定义了create方法,这个方法的返回值是Moveable类型。abstractMoveablecreate();}有具体实现类CarFactory和PlaneFactorypackagecom.bjsxt.dp.factory;//CarFactory继承了VehicleFactory抽象类publicclassCarFactoryextendsVehicleFactory{publicMoveablecreate(){returnnewCar();}}packagecom.bjsxt.dp.factory;
4、//飞机的工厂,用工厂来产生plane。publicclassPlaneFactoryextendsVehicleFactory{//创建方法publicMoveablecreate(){//返回一个planereturnnewPlane();}}有接口Moveablepackagecom.bjsxt.dp.factory;//可以移动的,各种交通工具。publicinterfaceMoveable{voidrun();}具体的实现car和plane都实现了Moveable接口packagecom.bjsxt.dp.factory;importjava.util.ArrayLis
5、t;importjava.util.List;publicclassCarimplementsMoveable{//单例模式,定义为private的方法publicstaticCarcar=newCar();//多例模式,就是用一个数组来存放好多car//privatestaticListcars=newArrayList();//构造方法为静态publicCar(){}//静态工厂模式publicstaticCargetInstance(){returncar;}publicvoidrun(){System.out.println("冒着烟奔跑中car...
6、....");}}packagecom.bjsxt.dp.factory;publicclassPlaneimplementsMoveable{@Overridepublicvoidrun(){System.out.println("扇着翅膀前进中plane....");}}实现关系为:CarFactory和PlaneFactory都继承自VehicleFactory。car和plane都实现了moveable接口。在VehicleFactory当中的create()方法的返回值是moveable。在这个例子中,可以控制1.生产过程,2,交通工具的生产。使用者如下:package
7、com.bjsxt.dp.factory;publicclassTest{publicstaticvoidmain(String[]args){//通过VehicleFactory父类的引用来指向子类对象。VehicleFactoryfactory=newBroomFactory();//返回的结果是对应子类的对象,目前为broom.也就是说,new什么就产生什么Moveablem=factory.create();m.run();}}1.抽象工厂模式是简单工厂模式的扩展,就是一
此文档下载收益归作者所有