在业务中经常把类型给抽象出来作为一个表,这样的表有一个特点就是需要经常查到,但是基本不用修改到。而这种做法很致命的一点就是作为写业务的程序员必须了解数据库的某条记录的编号,然后写进去代码里面,这是完全违反开闭原则的,一旦有修改需要找出所有的代码并修改。
像下面的代码:
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.
修改记录的成本变得很低,甚至都不用开发一个软件来修改了,只要直接编辑文件就是了(当然不赞成这样,不利于权限管理等)
当然,这样就还有一个问题,程序员需要关注什么。这里建议用工厂模式。
首先建立一个抽象工厂封装,将几种产品的调用做个封装,对外提供一个方法,这个方法只需要一个“类型参数”。就按照上面的例子,可以对外提供images
,video
,audio
等几个类型参数,所有程序员编程的时候就按照这个分类写代码,调用封装类以后在进行switch
条件分支处理。
具体代码写多了烦,不写了。
分享到:
相关推荐
今天小编就为大家分享一篇laravel model模型处理之修改查询或修改字段时的类型格式案例,具有很好的参考价值,希望对大家有所帮助。一起跟随想过来看看吧
修改onnx模型的输入尺寸,使其能够同时处理多个图像
图像算法包括"Otsu阈值处理"、"图像阈值处理"、"图像空洞填补算法"、"图像运算算法"、"图像去噪算法"、"数学形态学"与"图像与模型处理算法"等;图像工具包括"图像切割"、"棋盘处理"、"骨架提取"、"直方图匹配"、...
用VS2013打开,修改模型输入输出位置,以及控制输出模型精度,即可进行三维模型的体素化。修改的位置已经在代码中注释了
为了解决多学科异构系统中产品设计模型之间...通过分析模型修改方法实现设计模型到分析模型的感知处理,重新处理分析模型。最后通过感知表达方法实现分析模型到设计模型的感知表达,将分析结果可视化反映到设计模型上。
同时,每个定义的 Python 模块均完全独立,方便修改和快速研究实验。 Transformers 支持三个最热门的深度学习库: Jax,PyTorch 以及 Tensorflow-并与之无缝整合。你可以直接使用一个框架训练你的模型然后用另一个加载...
在一般的整体变分模型中引入待处理区域的梯度场,得到一个扩展的整体变分模型,称为梯度场整体变分(gradient field total variation,GPTV)模型.无缝处理通过最小化模型函数来宾现.基于GPTV模型的方法可应用于...
LoRA的全称是LoRA: Low-Rank Adaptation of Large Language Models,可以理解为stable diffusion(SD)模型的一种插件,和hyper-network,controlNet一样,都是在不修改SD模型的前提下,利用少量数据训练出一种画风/...
代码隐藏页模型与单文件页模型不同的是,代码隐藏页模型将事物处理代码都存放在cs文件中,当ASP.NET网页运行的时候,ASP.NET类生成时会先处理cs文件中的代码,再处理.aspx页面中的代码。这种过程被成为代码分离。 ...
本版经过完全校订和修改,包括了许多新的和扩展的数据模型,这些模型包括产品定制、装运和接收、预算背景和雇员资格和表现。另外,书中有新的数据集市设计,包括财务分析、库存管理和装运逻辑。本书适合作为数据...
准备数据集和模型: 选择适当的数据集:根据你的应用场景选择合适的情感分析数据集。例如,可以使用IMDB电影评论数据...此外,还需要根据具体的需求和数据集的特点进行适当的调整和修改,以确保代码的正确性和适用性。
为了弥补FLAC3D针对复杂工况及在特殊结构有限元模型建立过程中存在的不足,探究前处理功能强大的MIDAS GTS NX软件与FLAC3D软件耦合建模新方法。采用Visual Basic语言编写了MIDAS GTS NX到FLAC3D的模型转换接口程序,对...
控制层主要实现用户查询请求和管理员操作请求的处理,并调用模型层完成具体业务操作。模型层完成信息的查询、添加、修改和删除等功能,操作MySQL数据库完成数据存储。 本系统实现了WML语言信息查询和后台信息管理的...
歌词生成,包括数据爬取、数据处理、模型训练和歌词生成,主要使用了基于lstm的语言模型和基于seq2seq的序列模型进行训练。 一、文件说明 data_crawl: 数据爬取文件 data_processing:输出处理文件 lstm_model:...
基于c++和vtk的医学图像处理平台,DICOM阅片,三维重建,模型处理+源代码+文档说明 - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审...
一款基于深度学习,提供数据标注、模型训练、模型部署、基于已有模型自动标注等功能的计算机视觉一体化平台。 操作简单,无需深度学习理论即可实现AI落地。处理分类、目标检测、目标跟踪等计算机视觉任务。 应用场景...
张欣的《可计算一般均衡模型的基本原理与编程》一书与其他相关中文教材相比,有大量详细的模型细节的处理,特别是包括大量相关的GAMS程序。这对初学者是非常有帮助的。 对于学习者而言,仅仅了解CGE的理论框架是远...
第三部分tensorRT基础:学习tensorRT的模型编译、推理流程,onnx解析器的使用,学习onnx的结构和编辑修改方法,学习int8量化,插件开发流程,简化的插件开发方法,学习动态shape的应用。 第四部分tensorRT高级:以...
python的基于bert模型的金融类新闻情感分类器源码+全部数据.zip这是95分以上高分必过课程设计项目,下载即用无需修改,确保可以运行。也可作为期末大作业。 python的基于bert模型的金融类新闻情感分类器源码+全部...
此分支使用模型yolov5s_relu_tk2_RK3588_i8.rknn, 将yolov5s模型的激活函数silu修改为为relu,在损失一点精度的情况下获得较大性能提升,详情见于rknn_model_zoo 部署应用 修改main.py下的modelPath为你自己的模型所在...