------- 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 (); } //定义工厂的实现类carfactory package com.itcast.factory; ; public class CarFactory extends VehicleFactory{ public Moveable creat(){ return new Car(); } } //定义工厂的实现类planfactory package 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{ @Override public 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(); } }