工厂方法模式应用场景举例

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

所谓的单例模式是指单个实例,单即单个的意思,例乃实例的意思,就是一个类生成的对象。因此,单例模式的功能作用就是保证一个类只生成一个对象,是在代码级的实现,不是人工维护的。【工厂方法模式应用场景举例】比如在玩“极品飞车”这款游戏,晕了吧,我喜欢极品飞车:),在玩这款游戏时,游戏者可以选择从不同品牌来选择赛车,那么这个“品牌”其实也就是工厂,每个工厂生产的赛车都不一样,这就是典型的工厂方法的应用场景。【工厂方法模式解释】类型:创建模式定义一个用于创建对象的接口,让其子类来决定实例化哪一个类(产品),工厂方法使一个类的创建延迟到其子类中。【工厂方法模式UML图】【工厂方法模式-JAVA代码实现】新建赛车的接口:packagecar_interface;publicinterfaceIcar_interface{publicvoidstart();publicvoidstop();}新建1个汽车信息的基类:packagecar_imple;importcar_interface.Icar_interface;publicclassbase_car_impleimplementsIcar_interface{privateintspeed;privateStringname;publicintgetSpeed(){returnspeed;}publicvoidsetSpeed(intspeed){this.speed=speed;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicvoidstart(){//TODOAuto-generatedmethodstub}publicvoidstop(){//TODOAuto-generatedmethodstub}}新建奥迪汽车实现类:packagecar_imple;importcar_interface.Icar_interface;publicclasscar_audi_impleextendsbase_car_imple{publicvoidstart(){System.out.println(this.getName()+车以专利技术起动了最高速度为:+this.getSpeed());}publicvoidstop(){System.out.println(this.getName()+车以专利技术停车了);}}新建大众汽车实现类:packagecar_imple;importcar_interface.Icar_interface;publicclasscar_3w_impleextendsbase_car_imple{publicvoidstart(){System.out.println(this.getName()+车以专利技术起动了最高速度为:+this.getSpeed());}publicvoidstop(){System.out.println(this.getName()+车以专利技术停车了);}}新建一个汽车工厂接口:packagecar_factory_interface;importcar_interface.Icar_interface;publicinterfaceIcar_factory{publicIcar_interfacecreate_car();}新建一个创建奥迪车的汽车工厂实现类:packagecar_factory_imple;importcar_factory_interface.Icar_factory;importcar_imple.car_audi_imple;importcar_interface.Icar_interface;publicclassaudi_car_factory_impleimplementsIcar_factory{publicIcar_interfacecreate_car(){car_audi_implecar_audi_imple_ref=newcar_audi_imple();car_audi_imple_ref.setName(奥迪A6);car_audi_imple_ref.setSpeed(300);returncar_audi_imple_ref;}}新建一个创建大众车的汽车工厂实现类:packagecar_factory_imple;importcar_factory_interface.Icar_factory;importcar_imple.car_3w_imple;importcar_imple.car_audi_imple;importcar_interface.Icar_interface;publicclassthreeW_car_factory_impleimplementsIcar_factory{publicIcar_interfacecreate_car(){car_3w_implecar_3w_imple_ref=newcar_3w_imple();car_3w_imple_ref.setName(大众A6);car_3w_imple_ref.setSpeed(400);returncar_3w_imple_ref;}}客户端运行程序代码:packagerun_main;importcar_factory_imple.audi_car_factory_imple;importcar_factory_interface.Icar_factory;importcar_interface.Icar_interface;publicclassrun_main{publicstaticvoidmain(String[]args){Icar_factorycar_factory=newaudi_car_factory_imple();Icar_interfacecar_ref=car_factory.create_car();car_ref.start();car_ref.stop();}}程序运行结果如下:奥迪A6车以专利技术起动了最高速度为:300奥迪A6车以专利技术停车了通过使用工厂方法模式就可以将对象的创建延迟到子类进行实例化,而且每个工厂创建不同的品牌的汽车,每个汽车的功能都有自己“专利”的实现,这样可以将不同“品牌”的“汽车”的创建进行分类,有利于对象创建的清晰性。创建不同的汽车只需要改动这句代码就可以了:Icar_factorycar_factory=newaudi_car_factory_imple();【工厂方法模式-MyEclipse6项目JAVA代码实现】

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功