设计模式之4 工厂模式

设计模式之4 工厂模式

ID:40313359

大小:26.72 KB

页数:8页

时间:2019-07-30

设计模式之4 工厂模式_第1页
设计模式之4 工厂模式_第2页
设计模式之4 工厂模式_第3页
设计模式之4 工厂模式_第4页
设计模式之4 工厂模式_第5页
资源描述:

《设计模式之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.抽象工厂模式是简单工厂模式的扩展,就是一

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。