抽象工厂模式java代码的实现:
1.创建一个简单的玩具接口类
package com.weitao.abstractFactory;
/**
* @author 作者 weitao:
* @version 创建时间:2016-7-20 上午10:08:19
* 类说明
*/
public interface Toy {
public void makeToy();
}
2.实现一个玩具小汽车的类
package www.weitao.simpleFactory;
/**
* @author 作者 weitao:
* @version 创建时间:2016-7-20 上午10:10:09
* 类说明
*/
public class ToyCar implements Toy{
@Override
public void makeToy() {
// TODO Auto-generated method stub
System.out.println("this is toy car!");
}
}
3.实现一个玩具飞机的类
package www.weitao.simpleFactory;
/**
* @author 作者 weitao:
* @version 创建时间:2016-7-20 上午10:11:32
* 类说明
*/
public class ToyPlane implements Toy{
@Override
public void makeToy() {
// TODO Auto-generated method stub
System.out.println("this is toy plane!");
}
}
4.提供一个工厂接口
package com.weitao.abstractFactory;
/**
* @author 作者 weitao:
* @version 创建时间:2016-7-20 下午1:51:46
* 类说明
*/
public interface Provider {
public Toy produce();
}
5.实现一个用来生产玩具车的类
package com.weitao.abstractFactory;
/**
* @author 作者 weitao:
* @version 创建时间:2016-7-20 下午1:52:59
* 类说明
*/
public class ToyCarProduce implements Provider{
@Override
public Toy produce() {
return new ToyCar();
}
}
6.实现一个用来生产玩具飞机的类
package com.weitao.abstractFactory;
/**
* @author 作者 weitao:
* @version 创建时间:2016-7-20 下午1:54:08
* 类说明
*/
public class ToyPlaneProduce implements Provider{
@Override
public Toy produce() {
return new ToyPlane();
}
}
7.测试抽样工厂方法的类
package com.weitao.abstractFactory;
/**
* @author 作者 weitao:
* @version 创建时间:2016-7-20 下午1:54:08
* 类说明
*/
public class ToyPlaneProduce implements Provider{
@Override
public Toy produce() {
return new ToyPlane();
}
}
即完成了抽象工厂方法的java代码编写
抽象工厂模式的作用:
1、抽象工厂模式隔离了具体类的生产,使得客户并不需要知道什么被创建。
2、当一个产品族中的多个对象被设计成一起工作时,它能保证客户端始终只使用同一个产品族中的对象。
3、增加新的具体工厂和产品族很方便,无须修改已有系统,符合“开闭原则”。