实体类与电梯

简介:      我们先假设一种情况,一个开发商想盖一座大楼(假设30层吧),先要弄一个设计图纸呀,没有设计图纸怎么盖楼呢?设计图纸的其他部分我们就先不管了,只看看电梯的这一块的情况。一开始要选用电梯公司A的电梯,于是设计图就根据A的电梯设计电梯间。

 

     我们先假设一种情况,一个开发商想盖一座大楼(假设30层吧),先要弄一个设计图纸呀,没有设计图纸怎么盖楼呢?设计图纸的其他部分我们就先不管了,只看看电梯的这一块的情况。一开始要选用电梯公司A的电梯,于是设计图就根据A的电梯设计电梯间。图纸设计完了,开始施工,一切都很顺利,很快大楼就盖起来了,大家都很高兴,下面要开始安装电梯了。但是以外发生了。

     原来要采用电梯公司A的电梯,但是由于种种原因不能采购了,于是改用了电梯公司B的电梯,拿到电梯的技术参数大家傻眼了,怎么B的电梯要比A的电梯长30里面?这样太长了,电梯间里面放不下去呀?怎么办?楼都盖好了,难道要修改电梯间,把每一层的电梯间都加宽吗?这改动量也太大了呀,如果因此影响了整体的稳定性怎么办呀?那么改电梯间不上上策,看看其他电梯公司的电梯有没有适合的吧,换电梯还是比较方便的呀,这才是上策!

     但是由于电梯间已经设计好了,那么选择电梯的范围就缩小了,尺寸不匹配的,性价比再好也不能选。这个就很被动了。如果所有的电梯公司生产的电梯,外观尺寸都是一样的,那该多好呀。这样设计的时候就不用考虑将来采用什么样的电梯了,因为所有的电梯的外观尺寸都是按照一个标准生出来的,不用担心电梯间设计出之后,电梯放不进去的情况。

     对于电梯公司来说,这也是一件好事,只要按照这个标准生产电梯,那么都不用担心生产出来的电梯安装不上的情况了。

     ps:这个就是所谓的针对接口编程吧。不过这里并不想讨论接口编程的问题,只是写到这里了,突然想到的。这里想说的是实体类。

     

     好了故事变好了,我不是搞建筑的,不知道这个故事编的是否合理。我想说的是,在三层里面,实体类变化了,每一层如何应对的事情。

     我不愿意接受三层的形式,一大原因就是当实体类变化的时候,基本每一层都需要改代码,就像大楼里的电梯变长了,每一层的电梯间都要修改一样。而我又没有想到什么好的方式来应对(在使用三层形式的范围内),所以我就没有用三层的这种形式开发项目。

     针对接口编程,看起来很好,那么如何来实现呢?这个我就不知道了,因为对接口的了解并不多,对实体类在各种业务需求下会变成什么样子,“资料”掌握的也不多。看了前两天园子里的一篇post,也没感觉出来有什么优势,可能是我还没有看到真正的好的针对接口编程的例子吧。

     所以我只好采用笨招了,定义一个ColumnsInfoBase  类(这里有介绍)来存放需要的信息,而ColumnsInfoBase  本身是固定的(属性不变),就好像限定了长宽高的电梯一样。这样每一层都针对这个固定的ColumnsInfoBase  来编写代码,数据层和UI层的代码就固定下来了,逻辑层的代码变化也不大。单纯的字段变化就可以完全不用修改逻辑层了,当然数据层、UI层也是不需要修改的。只有当业务逻辑变化的时候才有可能需要修改逻辑层的代码,这时候数据层、UI层的代码还是不需要修改的。

 

 

相关文章
|
5月前
|
缓存 NoSQL Java
用好缓存,让你的接口速度飞起来
本文是关于接口性能优化,特别是通过缓存来提升接口响应速度的探讨。作者是一名有六年经验的Java后端开发者,分享了自己避免线上系统因代码崩溃造成资损的经验,主要归功于业务的简单性、遵循代码规约和积累的实用技巧。文章重点讲解了缓存的两个方面:缓存预热(包括定时任务和启动预热)和缓存层次化(多级缓存和热点数据缓存),并提供了如何用代码实现这些思路的示例。作者还介绍了自定义缓存处理器的设计和实现,包括接口和抽象类的定义,以及使用函数式编程实现的缓存查询模板。最后提醒,缓存虽有益但需谨慎使用,应根据业务需求和数据特征定制策略。
133 1
|
5月前
|
JavaScript Java 关系型数据库
车辆充电桩|基于Springboot+vue的车辆充电桩管理系统的设计与实现(源码+数据库+文档)
车辆充电桩|基于Springboot+vue的车辆充电桩管理系统的设计与实现(源码+数据库+文档)
97 0
|
5月前
|
运维 Java 数据库
基于springboot的车辆充电桩管理系统(系统+数据库+文档)
基于springboot的车辆充电桩管理系统(系统+数据库+文档)
|
5月前
|
测试技术
实战SSM_O2O商铺_17【商铺编辑】Dao层开发
实战SSM_O2O商铺_17【商铺编辑】Dao层开发
46 1
|
5月前
|
SQL 关系型数据库 MySQL
实战SSM_O2O商铺_21【商铺列表】Dao层开发
实战SSM_O2O商铺_21【商铺列表】Dao层开发
50 0
|
设计模式 Java uml
状态模式 电梯
状态模式是一种行为型设计模式,它允许对象在内部状态发生改变时改变它的行为。状态模式将对象的行为封装到不同的状态类中,每个状态类都实现了对象在该状态下具体的行为。当对象的状态发生改变时,它会自动切换到相应的状态类,从而改变它的行为。
70 1
|
SQL Java 测试技术
实战SSM_O2O商铺_07【商铺注册】DAO层-新增与更新商铺
实战SSM_O2O商铺_07【商铺注册】DAO层-新增与更新商铺
84 0
|
前端开发 Java 关系型数据库
实战SSM_O2O商铺_02数据模型设计及实体类的创建
实战SSM_O2O商铺_02数据模型设计及实体类的创建
51 0
|
Java 数据库连接 数据库
【JDBC实战】水果库存系统 [设计阶段]
学习水果库存系统 [设计阶段]。
198 0
【JDBC实战】水果库存系统 [设计阶段]
|
存储 数据采集 运维
给工厂做开发,竟然喝着咖啡听“交响”?
给工厂做开发,竟然喝着咖啡听“交响”?云上不只有存储和计算,还有知识和经验。云计算提供的不只是一台一台的服务器,它提供给你的是丰富的知识和经验,你不光可以学习和使用,也可以基于这些知识经验去发展出属于你的新的知识和经验。”
733 0
给工厂做开发,竟然喝着咖啡听“交响”?