Factory

设计模式之工厂模式:(参照:郭克华讲座)

****************************************************************************
package factory01;

//场景:Action调用Dao,DaoFacotry来创建dao
//面向接口编程 避免调用时改变(行9改变下面都要变)
//建立工厂类 只注重模块生成,不注重什么时候生成,降低了耦合性
//为所有的dao服务--spring 可切换,降低了耦合性

class Action {
public void classDao() {
// CustomerDao dao = new CustomerDao();
ICustomerDao dao = (ICustomerDao)DaoFactory.getDao("Customer");
dao.login();
}
}

class DaoFactory {
public static Object getDao(String daoName) {
if(daoName.equals("Customer")) {
//事先准备工作
return new CustomerDao();
}
// else if(/**/) {
//
// }
return null;
}

public static Object getDao1(String daoName) {
try {
//根据配置文件得className xml 配置
String className = "";
return Class.forName(className).newInstance();//spring
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}


}

interface ICustomerDao {
public abstract void login();
}

class CustomerDao implements ICustomerDao {
public void login() {
System.out.println("Dao login!");
}
}


public class Facotry1 {
}

/**
优点:客户类的工厂类分开。消费者任何时候需要某种产品,
只需向工厂请求即可。消费者无须修改就可以接纳新产品。
缺点:当产品修改时,工厂类也要做相应的修改,但spring
能克服。
应用:A 模块间调用时模块可调用接口较多的情况
B 实例化一个对象可能要进行复杂操作的情况

应用实例:spring 调用过程
*/

**********************************************************************
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值