工厂模式看了好久,有些困惑,各位给看看
目的只有一个:我想让一个工厂来管理我的DAO层对象和业务逻辑层manger对象创建
ItemDAO接口
[code="java"]
public interface ItemDAO {
/**
* 添加物料
* @param conn
* @param item
*/
public void addItem(Connection conn, Item item);
。。。。
[/code]
ItemDAOImpl:
[code="java"]
public class ItemDAOImpl implements ItemDAO{
/**
* 添加物料
* @param conn
* @param item
*/
public void addItem(Connection conn, Item item){}
。。。。
[/code]
ItemManager
[code="java"]
public interface ItemManager {
/**
* 添加物料
* @param item
*/
public void addItem(Item item);
/**
[/code]
ItemManagerImpl:
code="java"]
public class ItemManagerImpl implements ItemManager{
/**
* 添加物料
* @param item
*/
public void addItem(Item item){
.......
}
/**
[/code]
ItemAbstractFactory:
[code="java"]
public interface ItemAbstractFactory {
public ItemDao createItemDAO(Class classes);
public ItemManager createItemManager(Class classes);
}
[/code]
ItemAbstractFactoryImpl:
[code="java"]
public class ItemAbstractFactoryImpl implements ItemAbstractFactory{
public ItemDao createItemDAO(Class classes){
ItemDao itemDAO = null;
itemDAO = (ItemDao)Class.forName(classes.getName()).newInstance();
return itemDAO;
}
public ItemManager createItemManager(Class classes){
ItemManager itemManager = null;
itemManager = (ItemManager)Class.forName(classes.getName()).newInstance();
return itemManager;
}
}
[/code]
我上面的实现是抽象工厂的实现吗?他能够实现多系列产品的创建,看了设计模式书里讲的头都晕了,似乎明白了
用的时候还是糊涂
另外上面这个用简单工厂也能达到目的啊
ItemDAO ItemDAOImpl
ItemManger ItemMangerImpl一样,不写了
StaticFactory:
[code="java"]
public class StaticFactory{
private StaticFactory factory = new StaticFactory();
private StaticFactory(){};
public StaticFactory getInstance(){}
public ItemDAO createItemDAO(Class classes){
return (ItemDAOImpl)Class.forName(classes).newInstance();
}
public ItemManager createItemManager(Class classes){
return (ItemManagerImpl)Class.forName(classes).newInstance();
}
}
[/code]
这样好像也能达到目的,就少了个工厂接口而已
是不是上面两个都是简单工厂啊