转换规则

2024-02-13 05:32
文章标签 转换规则

本文主要是介绍转换规则,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SpringController的继承架构如下图所示。

 


 
 

 

由于Java不支持多重继承,直接导致了MutilControllerSimplFormController不能直接同时使用;而这两者又是项目中很需要的Controller。因此需要考虑整合的问题。

网上可以搜到一些整合方案,但我这里谈一下另外的途径,即自己封装SimpleFormController的功能。

SimpleFormController的功能无非是利用反射配置,而且我记得Spring对自己的反射功能并未优化。虽然反射所多耗费的几十毫秒对一个大系统而言并非瓶颈所在,但如果能预留提升空间可以防备不时之需。

另外SimpleFormController的形式仍有改进余地,起码可以自己在配置过程中进行合法性判断。如下函数

 

Convert(request, rules, new Object())

 

rules可以有如下的形式{“username-string”, “password-string-null2empty”}.

rules指示了从request中提取username参数和password参数,并且如果password参数为null,则装换为””

 

显见requestobject11的映射,即只要request确定,可以唯一确定一个类的实例,通过转换规则rule

 

类似的11的映射还出现在网络传输中。将接收到的byte[]通过定义好的规则,转换为一个类的实例。规则可以写成如下的格式{“4*int*big-endian*username”, ”4*int*little-endian*password”},其中指定了字段所占的字节数,字段类型,网络编码或者主机编码,以及字段名。其中字段名项可要可不要,依赖于是否采用反射方式配置对象实例。

文件类型判断也可以采用相应的技巧。读取文件的前nbyte,直接按照一定规则将其装配成实例,进而判断文件类型。

 

问题的在规则转换。当将需求转换为实现的规则一定,则将转换过程黑匣化。输入需求,则直接转换为需要的实现。只不过此需求不像1+1那么简单。

类似的,Object2byte[]也是一种规则转换,easy

 

这篇关于转换规则的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/704603

相关文章

【前端52_Vue】工程化:快速安装脚手架、创建项目、安装插件、开发需要知道的:静态文件的引入、路径转换规则、CSS:预处理器、Scoped、数据访问相关:数据模拟、代理

文章目录 工程化 Vue cli简介快速开发全局安装 vue/cli-service-global单个 vue 的预览 创建项目命令行创建Vue UI 安装插件开发需要知道的静态文件的引入路径转换规则何时使用绝对 / 相对路径?使用 `public` 文件夹的注意事项(尽量不用) CSS 相关预处理器自动化导入样式Scoped CSS深度选择器scoped 中的穿透`scss` 中使用穿透

JavaScript中parseInt()转换规则(JS笔记:八)

JavaScript中parseInt()转换规则(JS笔记:八) parseInt():将其他类型转为整形。 parseInt()转换规则: 数字:截断小数,返回小数点前的数值。没有小数点不转换还是为自身。null:转为NaN。undefined:转为NaN。字符串:会忽略前面的0和空格直到找到第一个数字然后一直找到非数字字符为止。字符串为数字:转为对应的数值。字符串中有一个小数点:截

JavaScript中Number()转换规则(JS笔记:七)

JavaScript中Number()转换规则(JS笔记:七) Number():将其他类型转为数值形。 Number()转换规则: 布尔值:true转为1,false转为0。数字:不转换还是为自身。null:转为0。undefined:转为NaN。字符串:会忽略前面的0和空格直到找到第一个数字然后一直找到非数字字符为止。字符串为数字:转为对应的数值。字符串中有一个小数点:转为对应的浮点

JavaScript中Boolean()转换规则(JS笔记:六)

JavaScript中Boolean()转换规则(JS笔记:六) Boolean()转换规则: 除了以下七种类型其他类型都转为true,包括[]空数组和{}空对象。false:转为false。null(空):转为false。0(数字0):转为false。’’(空字符):转为false。undefined(未定义):转为false。NaN():转为false。不传参(空没传入参数):转为fa

C++修炼之路之继承<一>隐藏,赋值转换规则,继承关系

目录 前言  一:继承的概念和定义 1.概念 2.继承的定义  1.定义格式 2.继承关系和访问限定符  3.继承基类成员访问方式的变化  二:基类和派生类对象赋值转换 规则  三:继承中的作用域 规则 经典举例 经典例题--区分函数重载和隐藏  接下来的日子会顺顺利利,万事胜意,生活明朗-----------林辞忧 前言  面向对象的三大特性为封装,继

Java中数据类型的转换规则

Java中数据精度比较 byte<short<int<long<float<doublebyte<short<int<long<float<double 在Java中的小数默认为double类型。 强制转换:int a=(int)1.2; 计算过程中的转换:在计算过程中一个int和一个double运算的时候,运算结果会向 double类型转。 Java中常见的发生类型转换的上下文:赋

C语言基本数据类型及转换规则

C语言的基本数据类型;有点奇怪的是为什么float和double不用signed/unsigned修饰。 符号属性 长度属性 基本型 所占位数 取值范围 输入符举例 输出符举例 -- -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%u signed -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%u unsigned

mysql隐式转换规则

MySQL 中的隐式类型转换发生在比较操作或者其他一些需要特定数据类型参数的上下文中,如果参与操作的表达式或列的数据类型不匹配,MySQL 就会自动进行数据类型转换以适配预期的数据类型。 以下是 MySQL 的一些常见隐式转换规则: 字符串和数字:当一个字符串与一个数字进行比较时,字符串会被转换为一个数字。转换是基于字符串的数值前缀。如果字符串没有数值前缀,则转换结果为 0。 示例: SEL

Python的数据类型及举例集合、元组、列表之间的转换规则

Python语言有八种数据类型,有数字(整数、浮点数、复数)、字符串、字典、集合、元组、列表、布尔值、空值,下面我演示八种数据类型及集合、元组、列表三种类型之间的转换规则。 一、数据类型示例 下面我演示了八种数据类型,每个变量名都以【my_它的类型】命名。注意前三个变量类型都属于数字类型number my_int=10 # 整数my_float=10.0 # 浮点数my_compl