查询无修改的模型处理

在业务中经常把类型给抽象出来作为一个表,这样的表有一个特点就是需要经常查到,但是基本不用修改到。而这种做法很致命的一点就是作为写业务的程序员必须了解数据库的某条记录的编号,然后写进去代码里面,这是完全违反开闭原则的,一旦有修改需要找出所有的代码并修改。

像下面的代码:

 

	public static String getFilePath(String fileType) {
		String filePath = "";
		Integer type = 57;
		if (null != fileType && !"".equals(fileType)) {
			type = Integer.parseInt(fileType);
		}
		switch (type) {
			case 53:
				filePath = "userfiles/images";
				break;
			case 54:
				filePath = "userfiles/video";
				break;
			case 55:
				filePath = "userfiles/audio";
				break;
			case 56:
				filePath = "userfiles/document";
				break;
			case 57:
				filePath = "userfiles/others";
				break;
			default:
				break;
		}
		return filePath;
	}
 

真正的做法应该是将这些脱离于数据库,保存在文件。好处有

1. 查询效率提高N 多倍;

2. 一旦修改了记录不用修改源代码,而源代码要查找文件,完全符合开闭 原则;

3. 让程序员更容易理清楚关系,用XML 或者其他文件在表示树等结构上面明显有优势;

4. 修改记录的成本变得很低,甚至都不用开发一个软件来修改了,只要直接编辑文件就是了(当然不赞成这样,不利于权限管理等)

当然,这样就还有一个问题,程序员需要关注什么。这里建议用工厂模式。

首先建立一个抽象工厂封装,将几种产品的调用做个封装,对外提供一个方法,这个方法只需要一个“类型参数”。就按照上面的例子,可以对外提供imagesvideoaudio 等几个类型参数,所有程序员编程的时候就按照这个分类写代码,调用封装类以后在进行switch 条件分支处理。

具体代码写多了烦,不写了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值