关于javaBean一些逻辑业务的封装,求指导
比如一个用户类User,在对其成员增加set,get方法后。作为一个用户类他还必须有在登陆时候检查用户名的方法check();这时候我就疑问,这个check是写在这个ja...
比如一个用户类User,在对其成员增加set,get方法后。
作为一个用户类他还必须有在登陆时候检查用户名的方法check();
这时候我就疑问,这个check是写在这个javaBean User里面?
还是写在一个新的总管类:UserManger里面,这个总管类是专门来封转对User的逻辑业务操作。
如果从编程,和调用的角度来看,写在User类里面会好用而且方便很多!
但貌似根据一些设计模式,是要写在总管类里面?
求指导! 展开
作为一个用户类他还必须有在登陆时候检查用户名的方法check();
这时候我就疑问,这个check是写在这个javaBean User里面?
还是写在一个新的总管类:UserManger里面,这个总管类是专门来封转对User的逻辑业务操作。
如果从编程,和调用的角度来看,写在User类里面会好用而且方便很多!
但貌似根据一些设计模式,是要写在总管类里面?
求指导! 展开
4个回答
展开全部
写在UserManager里面
User是一个javabean,javabean的用处就是封装一些属性,这里把这些属性进行封装后,剩余的业务操作统一对User这个对象来进行处理(这样就是面向对象的基本概念了)
这里User里面有的应该是User的所有相关属性,而UserManager里面就应该是对User对象操作的各种业务操作方法。
写在User里面并不会方便的,只是少了UserManger类 代码量感觉少了吧。
但是如果后面系统需要对某些业务操作进行修改的话 比如check方法的实现。就需要更改User类,但是User类再系统中应该是基本数据 再后期系统修改的时候是不应该存在修改的(基础数据一般都是系统设计的时候抽取来的,)这些东西是项目的根基 ,总修改来修改去会非常麻烦而且系统会非常不稳定的。
而这里如果写在UserManager里面的话,后面只需要根据业务需要对UserManager进行修改即可(虽然这里也是对一个类修改的,但是意义不一样,因为业务本来就是有很大概率要更改的,所以这里应该把业务相关的东西 也就是经常要改变的东西抽取 放在一个类中)
暂时不考虑神马设计模式了吧,先从实际项目中考虑优缺点就好,设计模式写的多了,自然就来感觉了。
User是一个javabean,javabean的用处就是封装一些属性,这里把这些属性进行封装后,剩余的业务操作统一对User这个对象来进行处理(这样就是面向对象的基本概念了)
这里User里面有的应该是User的所有相关属性,而UserManager里面就应该是对User对象操作的各种业务操作方法。
写在User里面并不会方便的,只是少了UserManger类 代码量感觉少了吧。
但是如果后面系统需要对某些业务操作进行修改的话 比如check方法的实现。就需要更改User类,但是User类再系统中应该是基本数据 再后期系统修改的时候是不应该存在修改的(基础数据一般都是系统设计的时候抽取来的,)这些东西是项目的根基 ,总修改来修改去会非常麻烦而且系统会非常不稳定的。
而这里如果写在UserManager里面的话,后面只需要根据业务需要对UserManager进行修改即可(虽然这里也是对一个类修改的,但是意义不一样,因为业务本来就是有很大概率要更改的,所以这里应该把业务相关的东西 也就是经常要改变的东西抽取 放在一个类中)
暂时不考虑神马设计模式了吧,先从实际项目中考虑优缺点就好,设计模式写的多了,自然就来感觉了。
展开全部
javaBean是你的对象,如user,你给其添加name,sex等属性,常见的1、可以重写其toString方法来对外展示这个对象,让其在打印日志或者控制台以你想要的展示方式来展示,2、重写equals和Hashcode方法来建立这个对象的比较关系,至于check属于业务方法,是对User对象的操作,要写在UserManger或者userService里
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就这个问题我说点自己的看法。我感觉设计模式这么设计JAVABEAN可能是因为对于不同的bean不同的业务可能有不同的需求。如果业务方法都放到了bean里面对于可能造成了内存的不必要开支还有就是对于不同业务方法的混淆。
下面我说明一下。
假如有这样一个需求A模块要根据user的id删除user,B模块要根据user的name和age删除user,对于这样的需求正常的模式应该是AuserManager里面有A的删除逻辑,BuserManager里面有B的删除逻辑,如果都放到了user里面会产生2个删除方法而对于A模块name和age的删除方法是没有意义的多余的。new一个user对象的时候也会在内存中分配凉快区域存储方法的。所以也是内存的浪费,这样就不如A的逻辑都放到AManager里面B放到B里面了方便了。
下面我说明一下。
假如有这样一个需求A模块要根据user的id删除user,B模块要根据user的name和age删除user,对于这样的需求正常的模式应该是AuserManager里面有A的删除逻辑,BuserManager里面有B的删除逻辑,如果都放到了user里面会产生2个删除方法而对于A模块name和age的删除方法是没有意义的多余的。new一个user对象的时候也会在内存中分配凉快区域存储方法的。所以也是内存的浪费,这样就不如A的逻辑都放到AManager里面B放到B里面了方便了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议你写在UserManager类里面做业务逻辑操作
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询