学习日记-工厂模式

 ------- 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();
	}

}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值