这样的情况怎样设计好?

问题描述

我在一系统中,有几处用到了树结构,组织机构,资源菜单,分类这些都是用到了无限级分类,做了几个发现这样很多重复的代码,从 entity,dao,manager,acton都很多代码方法都重复了有时要优化一下,发现别的模块也需要优化,这样重复地方多了,怎样设计好点呢?我的是(SSH+EXT) 问题补充:/** * 组织机构 * * * */@Entity@Table(name = "t_org")@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)public class Organization { private String name; private String sn;private String description;private Organization parent;private boolean leaf;//是否叶子节点private boolean expanded;//是否展开 public boolean getLeaf() {return leaf;}public void setLeaf(boolean leaf) {this.leaf = leaf;}public boolean getExpanded() {return expanded;}public void setExpanded(boolean expanded) {this.expanded = expanded;}private List<Organization> children; private int orderNo;public int getOrderNo() {return orderNo;}public void setOrderNo(int orderNo) {this.orderNo = orderNo;} @Column(name = "orgName", nullable = false)public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSn() {return sn;}public void setSn(String sn) {this.sn = sn;}public String getDescription() {return description;}public void setDescription(String description) {this.description = description;}@ManyToOne(targetEntity = com.abu.jxc.org.entity.Organization.class)public Organization getParent() {return parent;}public void setParent(Organization parent) {this.parent = parent;} @OneToMany(targetEntity = com.abu.jxc.org.entity.Organization.class, mappedBy = "parent", cascade = { CascadeType.ALL })public List<Organization> getChildren() {return children;}public void setChildren(List<Organization> children) {this.children = children;} }/** * 组织机构 * * */@Component("orgDao")public class OrgDao extends HibernateDao<Organization, Long> { }public interface OrgManager {/** * * * @param parentId * @return */List seachOrgs(Long parentId); */void delOrg(Long id);}@Component("orgManagerImpl")@Transactionalpublic class OrgManagerImpl implements OrgManager {private OrgDao orgDao;@Resource(name = "orgDao")public void setOrgDao(OrgDao orgDao) {this.orgDao = orgDao;} publicList seachOrgs(Long parentId){ } */public void delOrg(Long id){}}

解决方案

重构喽 重复部分尽量设计成可扩展的,即OCP原则封装变化原则、接口隔离 etc.建议你贴代码

时间: 2024-09-22 10:42:35

这样的情况怎样设计好?的相关文章

关于hibernate中多个OneToMany情况如何设计映射关系

问题描述 标题说的不够清楚,具体是这样的:有一个附件表,一个用户表,一个课程表,一个实验表.一个附件属于某个用户的某个课程的某个实验,但是一个用户可以有多个附件,一个课程也可以有多个附件,一个实验也能有多个附件.所以就成了:public class Attachment {@ManyToOne //用户public User user;@ManyToOne //课程public Course course; //实验@ManyToOnepublic Task task;}感觉这样设计初始化时需要

关于JPA中多个OneToMany情况如何设计映射关系

问题描述 有一个附件表,有一个文章表,有一个图书表文章表和图书表没有任何关系文章表下可以有多个附件图书表下可以有多个附件而且同时映射到一个栏位,id值uuid不会重复这样的关系如何映射Article.java@OneToMany@JoinColumn(name = "refId", referencedColumnName = "id")private List<Attachment> attachmentList;Book.java@OneToMany

设计原则与实际情况

这是一个网络相册.是不是该有"上传照片"这个按钮?我当时的意见是:不要有.理由是:只有在某个相册中才可以上传照片,在"根目录"(XXX的照片集)下,并不能上传照片,既然不能上传,所以不要有这个"上传照片"按钮,即使提供这个按钮,点了之后同样是要引导用户去选择相册或新建相册. 现在看来这个结论显然是不对的.问题出在哪儿?当时也确实有其他的同事反对,但并没有给出足以说服我的理由(也许是我太固执).记得当时反对的意见大概是:"你这个想法可能从

设计-学生在线答疑排队模拟C语言版的程序代码有木有呢?

问题描述 学生在线答疑排队模拟C语言版的程序代码有木有呢? 程序设计思路: 1.主函数main( ),打印输出主控程序菜单选项,并接收用户的选择项 2.定义学生信息(学号.姓名)的数据存储结构 3.设计学生在线答疑排队模拟程序的功能函数EnQueue( ),处理新学生加入排队的情况 4.设计学生在线答疑排队模拟程序的功能函数AnsQ( ),处理队列中第一个学生出队列答疑的情况 5.设计功能函数PrintQ( ),输出队列中所有正在排队的学生信息. 6.当用户退出答疑程序时,检查队列是否为空.如仍

WIN8设计特性浅谈和腾讯微博MS首版设计思路分享

中介交易 SEO诊断 淘宝客 云主机 技术大厅 作者:dengxuecui(崔登学) miaotong(佟淼) 10月,一个收获的季节,微软的新一代操作系统window8悄然而至,同时,我们的微博客户端团队,也搭上了第一波win8应用的末班车,设计并推出了腾讯微博MS版本.本文将结合腾讯微博MS版本的设计过程以及对win8系统特性的认识,聊聊win8操作的平台的应用设计. 文章很长,请选择有价值的部分阅读,或许你敢把它读完呢- 本文索引: 1. Windows8-再构想 2. Win8的系统特性

网页设计技巧

网站的页面多种多样,风格各异,网页的质量直接影响着网站的效果.网页设计的过程中,需要注意哪些方面的事项,有哪几方面影响着网页的设计效果呢? 一.页面平铺 把页面平铺开,主要的物件有:导航栏.LOGO.Banner.按钮.图片.文字. 1.导航栏 导航栏如果设计得恰到好处,是会给网页本身增色很多.导航栏有一排.两排.多排.图片导航和Frame框架快捷导航等等各种情况的设计.有时候是横排,有时候则是竖排.另外还有一些动态的导航栏,如很精彩的Flash导航. 2.LOGO LOGO并不是每个网站多要有

个性网页设计之页面设计

设计|网页|网页设计|页面 页面设计包括甚多,可大可小,我分以下几个要点与大家讨论:页面平铺.整体规划.功能易用性.气氛情感表达.大家有什么问题可以给我来信relen@sina.com. 一.页面平铺 把页面平铺开,主要的物件有:导航栏.LOGO.Banner.按钮.图片.文字.下面我就针对最主要的几个部分具体讲解. 1.导航栏 导航栏如果设计得恰到好处,是会给网页本身增色很多(千万不要太花哨,它属于功能物件,喧宾夺主就不好了).导航栏有一排.两排.多排.图片导航和Frame 框

用户体验设计:公用样式模板的设计制作

这个话题是应腾讯ISD同仁之邀在WebReBuild三周年交流会上做的主题分享.由于临场等原因有些问题当时没有讲明白,回来后按原有思路形成了一篇小论文,对其中一些问题进行了进一步阐述.现场有位同行朋友提出了对使用表现性语义的质疑,当时没有给出让他满意的答复,因此文章中花了较多的篇幅来探讨语义性有关的问题,算是对那位朋友的解答. 一. 公用样式模板的"公用"的含义 1. 能够应用在不同功能的web系统上(用在哪?) 企业的web开发团队除了开发一些在公共平台运营为公司用户服务的web产品

办公室网络的布线设计原则及实施

布线系统是建筑或建筑群内的网络,是实现智能化的基础.它不仅使建筑物内语音和数据通信设备.交换设备和其它信息管理系统彼此相通,而且是连接这些设备与建筑物外部的通信网络.实现办公室电脑和相关办公设备信息接口的连网,并保证其可灵活使用性,使用稳定性,长期使用性,外观美观性. 而办公室布线作为用户的最终使用的信息点(信息插座),在墙上安放的位置.使用是否方便,信息点的多少以及以后出现问题能否便于维护是我们进行办公室网络布线必须要考虑的.因此,办公室里强弱电(电力电源和图象.数据.语音)线路的走向等因素都