三层架构问题----解耦

解耦的概念

在分层结构中,我们希望将各个功能约束在各自的模块当中的,而属于某一层的对象、方法“入侵”到了其他层,如将web层中的ServletContext对象传入service层,或service层调用XMLDao独有的方法,就会导致层与层之间的关系过于“紧密”,当需要修改某一层时不可避免的要修改其他关联的层,这和我们软件分层最初的设想---层与层分离,一个层尽量不依赖其他层存在,当修改一层时无需修改另一层懂得设想是违背的。这种“入侵”造成的紧密关系就叫做层与层之间发生的耦合,而去掉这种耦合性的过程就叫做层与层之间的“解耦”


利用工厂类可以实现解耦的功能。

需要在src目录下创建一个bean.properties

class BeanFactory

{

Properties properties = null;

private  static BeanFactory factory = new BeanFactory();

private BeanFactory (){ }

public static BeanFactory getInstance()

     {

return factory

}


static

{

Properties properties = new Properties();

properties.load(BeanFactory.class.getClassLoader().getResourceAsStream("bean.properties"));

}


/**
* 加载需要的实现类
* @param clazz
* @return
*/
public static<T> T getImpl(Class<T> clazz)
{
String key=clazz.getSimpleName();//clazz.getName()
String className = properties.getProperty(key);
try {
return (T) Class.forName(className).newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值