学习日记-工厂模式

来源:互联网 发布:子午谷奇谋 知乎 编辑:程序博客网 时间:2024/06/05 08:14

 ------- android培训java培训、期待与您交流! ----------

工厂模式

定义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使一个类的实例化延迟到其子类。

工厂模式适用的类型:

1.当一个类不知道它所必须创建的对象的类的时候。

2.当一个类希望由它的子类来指定它所创建的对象的时候。

 3.当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。

下边给出一个小例子:

//定义接口提供各个对象都会有的方法package com.itcast.factory;public interface Moveable {void run();}//定义抽象工厂package com.itcast.factory;public abstract class VehicleFactory {//使用工厂不用在产生对象时,使用new这样就可以在产生对象时控制其产生的过程abstract Moveable creat ();}//定义工厂的实现类carfactorypackage com.itcast.factory;;public class CarFactory extends VehicleFactory{public Moveable creat(){return new Car();}}//定义工厂的实现类planfactorypackage com.bjsxt.factory;public class PlaneFactory extends VehicleFactory {public Moveable creat(){return new Plane();}}//定义抽象工厂实现类的实现类即生产出来的产品package com.itcast.factory;import java.util.ArrayList;public class Car implements Moveable{//单例设计模式,人们不可以随便的产生对象,并且每次产生的对象都是一个public static Car c=new Car();//还可以定义一个数组,来专门的存放Car每次需要时就给他其中的一个,即多例。public ArrayList<Car> arr=new ArrayList<Car>(); Car(){}public static Car getInstance(){return c;}public void run(){System.out.println("奔跑中.......");}}package com.itcast.factory;public class Plane implements Moveable{@Overridepublic void run() {System.out.println("扇着翅膀前进:.....");}}//下面是测试程序package com.bjsxt.factory;public class Test {public static void main(String[] args){PlaneFactory factory=new PlaneFactory();Moveable m=factory.creat();m.run();}}

------- android培训java培训、期待与您交流! ----------

原创粉丝点击