JavaWeb学习篇——使用通用工厂类解耦MVC框架
来源:互联网 发布:网络神偷电影电视剧 编辑:程序博客网 时间:2024/06/14 15:05
通过使用经典的MVC(model、view、controller)三层开发框架,可以使我们的项目结构更符合模块化的特点,各层(web、service、dao)只负责本层最擅长的工作。当某一层的业务逻辑需要重新调整时,则只需要修改该层的代码即可,其他各层均不受影响,方便整个项目的随时开发和维护。
- web层:接受请求、控制程序流转(servlet,即controller),展示数据(jsp,即view)。
- service层:处理业务逻辑,封装数据(javabean),即model。
- dao层:处理数据访问。
本文主要介绍如何通过定义一个通用工厂类来实现MVC框架开发中各层间的解耦,通过进一步的解耦操作,可以加强各层间代码的独立性。具体程序代码如下:
package com.empiresteven.factory;import java.io.FileNotFoundException;import java.io.FileReader;import java.util.Properties;import javax.persistence.Basic;//定义一个通用的工厂类,用于解除MVC三层框架中各层之间的耦合public class BasicFactory {//在工厂类内部维护一个静态的实例对象,供外界调用private static BasicFactory factory = new BasicFactory();//定义属性对象,从属性文件中读取各层接口对应实现类的全路径private static Properties property = null;//私有化构造函数private BasicFactory(){}//对外提供获取工厂类静态实例对象的接口public static BasicFactory getFactory(){return factory;}//当工厂类被加载到内存中,则执行静态代码块,初始化属性对象static{property = new Properties();try {//通过工厂类获取类加载器,得到类加载路径下的属性文件的硬盘路径,构造readerFileReader reader = new FileReader(BasicFactory.class.getClassLoader().getResource("config.properties").getPath());//加载属性文件内容到内存对象中,完成初始化操作property.load(reader);} catch (Exception e) {//打印异常抛出的跟踪路径e.printStackTrace();//向Java虚拟机抛出运行时异常throw new RuntimeException(e);}}/** * 通过工厂类获取各层接口的实现类对象 * @param <T> 泛型,各层接口的实现类 * @param clazz 需要获取的层接口的Class对象 * @return 该层的实现类对象 */public <T> T getInstance(Class<T> clazz){//获取class对象的类型名,即层接口名String interfaceName = clazz.getSimpleName();//从属性文件中读取该层接口所对应的实现类的全路径String implName = property.getProperty(interfaceName);try {//加载接口实现类的Class对象,从而创建出该实现类的实例对象并返回return (T) Class.forName(implName).newInstance();} catch (Exception e) {e.printStackTrace();throw new RuntimeException(e);}}}
0 0
- JavaWeb学习篇——使用通用工厂类解耦MVC框架
- JavaWeb.三层框架.MVC
- PE框架学习之道:PE框架——使用工厂类生成序列号seq
- JavaWeb学习总结(四十九)——简单模拟Sping MVC
- JavaWeb学习总结(四十九)——简单模拟Sping MVC
- JavaWeb学习总结(四十九)——简单模拟Sping MVC
- JavaWeb学习总结(四十九)——简单模拟Sping MVC
- JavaWeb学习总结(四十九)——简单模拟Sping MVC
- JavaWeb学习总结(四十九)——简单模拟Sping MVC
- JavaWeb学习总结(四十九)——简单模拟Sping MVC
- JavaWeb学习总结——简单模拟Sping MVC
- JavaWeb学习总结(四十九)——简单模拟Sping MVC
- JavaWeb——Ajax与MVC学习总结
- javaweb学习总结——Apache的DBUtils框架学习
- javaweb学习总结—Apache的DBUtils框架学习
- Javaweb学习之MVC
- JavaWeb学习十三(MVC)
- CodeIgniter框架学习——基础MVC
- 杭电-1879继续畅通工程(kruskal,prim)
- VS2008中添加外链接库文件
- morris的用法(三种图形)
- Linux进程间通信——使用信号
- OC中不可变数组和可变数组的操作方法
- JavaWeb学习篇——使用通用工厂类解耦MVC框架
- 服务中读取当前用户注册表HKEY_CURRENT_USER
- 在线支付心得
- 董事长、CEO、总裁、总经理的关系
- 探索推荐引擎内部的秘密,第 1 部分: 推荐引擎初探
- Spring框架简介---使用场景
- Linux进程间通信——信号集函数
- 判断两个无符号整形相加产生溢出
- 从activity回到fragment生命周期