项目所得:一个非典型性改动带来的思考(一) 之问题引入

引言: 这些天项目中做了一个改动, 为了后续行文方便,我们给这个改动起个绰号,称之为"非典型改动". 围绕这个改动,我想了很多, 几乎贯穿了整个项目所用的技术. 现在我想整理下来,作为以后的一个参考, (不敢写"若对别人有所帮助我也甚感欣慰"这样的话了, 因为这些天写博客写的有些伤心, :-) ).

----------------------------------------

这是一个真实的故事.

事情是这样的. 项目中的一个类,对这个类中一属性的判断规则是在代码里写死的. 由于现在的判断标准很简单,它们都是在代码中写死的. 现在要改, 把判断标准改放到数据库里, 而且判断标准要复杂了些.

为了更形象地描述这个问题, 也为了后续博客中写的方便, 在这篇博客里在下用一个简单的模型来描述下.

假设有一个类, Student, 它的属性如下.

class Student{

String id;

int age;

double score;

}

结合这个类把现在项目中的问题描述下. 我们知道,现在确定一个Student是否通过一个考试是看他的分数是否大于60, 现在判断标准改了, 它的规则如下:

如果 age > 20 && age < 21 && score > 65, --> "恭喜你, 过关了"

如果 age > 15 && age < 20 && score > 55, --> "恭喜你, 过关了"

............

也就是说判断的标准考虑到年龄因素了, 这样的组合有很多种, 于是判断组合是写在了数据库, 而且"老师"可以随时更改判断标准.

再回到项目中, 现在的问题是:

1, 项目中对一个Student是否通过考试的判断很多,也很散, 有在action中的, 也有在底层DAO实现的.

2, 项目中用的Hibernate怎么来描述判断标准.

这篇先到这里, 在下一篇中将写第一个问题引发的思考.

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索问题
, 标准
, 项目
, student
, age
一个
vue cdn引入问题、jsp引入js路径问题、weui.css引入路径问题、html引入js路径问题、相遇问题的故事引入,以便于您获取更多的相关知识。

时间: 2024-09-11 19:05:42

项目所得:一个非典型性改动带来的思考(一) 之问题引入的相关文章

项目所得:一个非典型性改动带来的思考(二) 之对第一个问题的思考

上篇 里以一个简化的例子把问题描述了下, 这里将当时引发的思考记录下来. 1, 接口配以不同的实现, 好像设计模式里有这么一个叫"策略"模式的. 大致想法是这样的, 定义一个名为 CriteriaProvider的接口, 接口可以写以这样: Java代码 public interface CriteriaProvider{ boolean isPass(Student student); } 再依两套标准做不同的实现. 这样是可以解决在项目里调用的问题, 但由于原有判断在代码中很多分散

项目所得:一个非典型性改动带来的思考(三) 之项目设计

上篇 中描述了针对第一个问题的思考, 在写的过程中几个关键词逐渐引起了我的注意, 本篇就让它们登台吧 , 它们是: 现在项目的套路及缺点, 数据库实现业务逻辑, 程序设计的美. 先看第一个, 即现在项目的套路及缺点. 虽说现在所项目还是不很多, 但对项目所用架构和技术还是有一定了解的. 现在是B/S流行的时代,我们这里 也只讨论Java实现B/S可选择的技术. 项目大都有三层, 也可以说五层. 三层是纯Java的三层, 五层是包括了数 据库和HTML_CSS_JavaScript后的说法. 这里

sencha touch-如何把一个非sencha architect构建的应用改写为architect构建的应用

问题描述 如何把一个非sencha architect构建的应用改写为architect构建的应用 现在有一个用sencha touch 写 的应用 ,可是由于开始用architect开发,只好把原有项目改写为architect形式的,由于对architect不熟悉,希望谁能给指点下 解决方案 同求啊,没有人遇到过么

如何扩展ArchiMate元模型来构建一个非功能性的模型扩展

本文展示如何扩展 ArchiMate 元模型来构建一个非功能性的模型扩展,可以从业务架构扩展到http://www.aliyun.com/zixun/aggregation/9942.html">技术架构.本文还提供了一个简单定制的下载,使您可以在 Rational System Architect 中使用新的元模型扩展. 本文主要关注 IT 系统非功能性方面的图形和形式表示,我们以非功能性需求(NFR)开始,因为这些表示是由架构师执行的. 在展示一些可用符号以及如何在 The Open

ERP项目是一个改革企业管理模式的项目!

对于ERP实施与运用的十二个重要观念,我们前面已经讲了两个,第一个是,要想把ERP实施好用好,企业员工一定要有全局思维,第二个是,ERP项目不是一个传统IT管理软件项目.那么ERP项目应该是一个什么项目呢?这就是本文要强调的第三个观念,即ERP项目是一个改革企业管理模式的项目. 对于管理模式的定义,从不同的角度会有不同的理解.比如做精益生产的,会有精益生产的管理模式,做六西格玛的,会有六西格玛的管理模式,做全面质量管理的,会有全面质量管理的管理模式,这里我们要站在ERP的角度来理解管理模式. 简

一个文章页如何带来一百多的流量

一个文章页如何带来一百多的流量?怎么样才可以让一个文章页带来一百多的流量呢?有人可能说找一百多个好友点击,这也算是一种办法吧.除了这些肯定有其他的方法咯,就是把这个文章页做到百度的首页,也不是把任何一个文章页做到首页都会有带来一百多的流量的,必选要选好关键词的,下面看一幅图:   看这第一幅图,站长工具显示权重为2,预计百度流量为181,"甲亢是怎么引起的"这个文章页排名为第三,这个关键词的百度指数为726.还有4个有指数的词都没在首页.可以说网站的流量基本上来自于这个文章页的.那么文

maven-Maven如何实现把两个项目打成一个jar包

问题描述 Maven如何实现把两个项目打成一个jar包 最近在研究maven,但是一直有个问题困扰着我,怎么把两个Maven项目打成一个jar包,求告知 解决方案 首先你的项目需要是Maven类型的项目,不是的话需要转成Maven类型的,然后在项目上单击右键,如下图:

正则表达式 匹配至少有一个非空白字符并且不超过指定长度_正则表达式

chinmo 逆向思维解决方案 复制代码 代码如下: <script type="text/javascript"> /** * 至少有一个非空白字符并且不超过6个字符的正则表达式 * * 作者:chinmo * 整理:http://www.CodeBit.cn * 来源:http://topic.csdn.net/u/20090207/18/ffa003ed-ecd4-40e0-b81f-36aa1fe46d85.html#r_55136904 */ var patter

现在项目中有一个这样的需求需要实现这样的窗口,选择多种数据,请问谁有这样的源码。

问题描述 现在项目中有一个这样的需求需要实现这样的窗口,选择多种数据,请问谁有这样的源码. 解决方案 直接用cfiledialog(C++)或者openfiledialog(C#)等. 也可以用toolbar listview combobox button等组合.