博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MVC案例——通过配置切换底层存储源
阅读量:5232 次
发布时间:2019-06-14

本文共 1106 字,大约阅读时间需要 3 分钟。

深入理解面向接口编程:在类中调用接口的方法,而不必关心具体的实现。这将有利于代码的解耦。使程序有更好的可移植性和可扩展性

 

1)动态修改Customer的存储方式:通过修改类路径下的switch.properties文件的方式来实现

2)CustomerServlet中不能在通过private CustomerDAO customerDAO = new CustomerDAOXMLImpl();的方式来写死实现类

3)通过一个类的一个方法来获取具体的实现类对象

当前WEB应用启动的时候,InitServlet被创建,并由Servlet容器调用其init()方法:

1)读取类路径下的switch.properties文件

2)获取switch.properties的type属性值

3)赋给CustomerDAOFactory的type属性值

创建CustomerServlet时,为customerDAO属性赋值是通过CustomerDAOFactory的getCustomerDAO()方法完成的。

 

CustomerDAOFactory

public class CustomerDAOFactory {    private Map
daos = new HashMap
(); private CustomerDAOFactory(){ daos.put("jdbc",new CustomerDAOJdbcImpl()); daos.put("xml",new CustomerDAOXMLImpl()); } private static CustomerDAOFactory instance = new CustomerDAOFactory(); public static CustomerDAOFactory getInstance(){ return instance; } private static String type = null; public void setType(String type){ this.type = type; } public CustomerDAO getCustomerDAO(){ return daos.get(type); }}

转载于:https://www.cnblogs.com/yangHS/p/11150985.html

你可能感兴趣的文章
OpenCv-Python 图像处理基本操作
查看>>
「Unity」委托 将方法作为参数传递
查看>>
重置GNOME-TERMINAL
查看>>
redis哨兵集群、docker入门
查看>>
hihoCoder 1233 : Boxes(盒子)
查看>>
oracle中anyData数据类型的使用实例
查看>>
C++对vector里面的元素排序及取任意重叠区间
查看>>
软件测试——性能测试总结
查看>>
12.4站立会议
查看>>
Java Concurrentmodificationexception异常原因和解决方法
查看>>
客户端访问浏览器的流程
查看>>
codeforces水题100道 第二十二题 Codeforces Beta Round #89 (Div. 2) A. String Task (strings)
查看>>
c++||template
查看>>
[BZOJ 5323][Jxoi2018]游戏
查看>>
编程面试的10大算法概念汇总
查看>>
Vue
查看>>
python-三级菜单和购物车程序
查看>>
条件断点 符号断点
查看>>
VMware12 + Ubuntu16.04 虚拟磁盘扩容
查看>>
水平垂直居中
查看>>