[size=medium]
真实需求与实际设计的矛盾
出现一些问题时候,往往就反映我们理解错了一些概念,运用错了一些东西。写东西是个好的方式,是让自己思考的一种方式,也是一种package,ok
场景:
系统内置发送信息,当用户提交的信息审核通过,发送信息给用户
信息--站内信 短信 邮件
提供发送信息的借口,分别实现。
public interface NoticeUser {
void sendNoticeInfo(String title,String content,RbacUser rbacUser);
}
public class BusinessMsgNotice implements NoticeUser {
private BusinessMsgManager businessMsgManager ;
public void setBusinessMsgManager(BusinessMsgManager businessMsgManager) {
this.businessMsgManager = businessMsgManager;
}
@Override
public void sendNoticeInfo (String title, String content, RbacUser rbacUser) {
BusinessMsg businessMsg= new BusinessMsg();
businessMsg.setMsgSendUid(Constants.BusinessMsg. SYSTEM_SENDID);
businessMsg.setMsgCreated( new Date());
businessMsg.setMsgBusinessType(Constants.BusinessMsg.Type. SYSTEM);
businessMsg.setMsgContent(content);
businessMsg. setMsgReceiveUid(rbacUser.getUsrId());
businessMsg.setMsgTopic(title);
businessMsg.setMsgCheck(Constants.BusinessMsg.Status. CHECK);
businessMsg.setMsgRead(Constants.BusinessMsg.MsgRead. NOT_READ);
businessMsg.setMsgDnd(Constants.BusinessMsg.MsgDnd. PERSON);
businessMsg.setMsgDelete(0);
businessMsgManager.save(businessMsg);
}
public void sendNoticeInfoFtl(String titleFtl, String contentFtl, Map<String,Object> model) {
File fileTitle= new File(getClass().getResource("/" +titleFtl).getPath());
File fileContent= new File(getClass().getResource("/" +contentFtl).getPath());
sendNoticeInfo(FreeMarkerContentUtil. getContent(fileTitle.getParentFile(),"companyNoticeTempleteTiTle.ftl", model), FreeMarkerContentUtil.getContent(fileContent.getParentFile(), "companyNoticeTempleteContent.ftl" , model),(RbacUser)model.get("rbacUser"));
}
}
发现信息的模板需要支持实时更改,也就是信息本身内容要修改,上面只是提供了发送方式。
信息内容处理方式:
数据库存储
模板文件配置方式
key->who使用这个系统
数据库/模板只是存储信息的方式,虽然模板需要去解析,但这跟数据库需要查询一样样的。
问题:
1.提供接口,提供不同发送的实现service
2.提供ftl模板方式构造内容
3.提供ftl的修改。
错误的方式:
1.利用ftl拼装过程代码冗余,想移动到service中,需要获取一些web的ip特性之类,但service层获取http中参数,这不科学,传递过多参数,这更不科学。
2.service肩负了太多的责任,单一职责啊。
3.信息目前就定义title与content,抽取model浪费
解决:
1.增加一个model,没认识到model除了title content还有rbacUser
2.提供一个工具类,接受http参数,拼装内容,
[/size]
分享到:
相关推荐
7. 总结与反思:回顾整个设计过程,总结学到的知识点,指出可能存在的不足和改进方向。 通过这个课程设计,学生不仅可以深入理解和掌握MFC框架,还能提升在Windows环境下用C++进行图形用户界面编程的能力。同时,...
考虑到这一限制,我将就“机器人设计工作总结”这一主题,构建一套相对完整且系统的知识点总结。以下内容将不直接引用给定文件的部分内容,而是基于标题所暗示的主题来构建知识体系。 机器人设计是一门跨学科的领域...
Java课程设计总结报告,是关于计算器的。2.主体功能 a.按下数字键在文本框上会显示数字,这是计算器最基本的功能。 b.按下数字键加上“+-*/%”加上数字键进行加、减、乘、除、求余计算。 c.按下“+-”键,计算器下...
MATLABGUI设计总结-matlab gui 设计总结.doc 最近做毕业设计用到GUI,搜集到了很多资料,现在传上来,和大家一起分亨。 一.10个小问题 二.MATLAB GUI编程中几个有用的程序段 1、 启动 2、 在GUI中使用Axes控件...
反激电源设计是一种常见的电力转换...总结来说,反激电源设计是一个涉及多方面知识的复杂过程,包括磁路设计、控制理论、电磁兼容性和热管理等。理解这些核心概念并运用到实践中,可以创建高效、可靠的反激电源系统。
设计模式是软件开发中的宝贵财富,它是一种在特定情境下解决常见问题的模板,通过将通用解决方案模式化,使得开发者可以快速应对复杂的设计挑战。在本文中,我们将深入探讨三种重要的设计模式:抽象工厂模式、策略...
计算机专业毕业设计工作总结 本篇毕业设计工作总结报告主要讲述了作者在开发企业信息管理系统的设计和实现过程中所学到的知识和经验。 知识点1:系统开发理念 在开发企业信息管理系统时,作者秉持着严谨求实、开拓...
采用java技术构建的一个管理系统。整个开发过程首先对系统进行需求分析,得出系统的...最后对系统进行功能测试,并对测试结果进行分析总结。 包括程序毕设程序源代码一份,数据库一份,完美运行。配置环境里面有说明。
为了“让每一个学生都能得到最优的发展”,我们将作业进行分层次设计,针对不同程度的学生设计不同程度的作业,依据学生分层情况匹配每一层的作业,以便满足不同层次学生的需要,让不同的学生能获得 不同的需求。...
Python 期末课程设计报告总结 本文是 Python 期末课程设计报告总结,从技术总结、实现的网络读书网站、书籍下载和书籍阅读系统等多方面进行总结。 技术总结: 本项目使用 Python 作为主要开发语言,Tkinter 库用于...
### 计算机算法设计和分析课程总结 #### 一、算法的概念与重要性 算法是计算机科学中解决特定问题的一系列明确指令的集合。它不仅限于编程领域,而是涵盖了数学、工程等多个学科。算法的特点包括有输入、输出、...
总结报告通常包括项目背景、需求分析、系统设计、实现过程、测试结果和经验总结等内容。它展示了开发者在整个项目周期中的思考和学习,有助于评估系统的效果并为后续改进提供参考。 总的来说,这个医院管理系统课程...
《双减背景下小学语文作业设计创新研究》课题阶段性总结 本文档是《双减背景下小学语文作业设计创新研究》课题阶段性总结报告,涵盖了课题的背景、研究思路、实施阶段、阶段性总结等方面的内容。 一、背景 在...
——ppt设计师创意类月度总结模板.zip”的资源包,为设计师们提供了一个展现个人风格和总结工作成效的工具。 每个月的工作总结是设计师自我提升的重要环节。它要求我们对过去一个月的点点滴滴进行梳理,包括完成的...
本文旨在总结 PCB 设计规范,通过对科林逆变器平台控制板的结构框图和设计规范的分析,指出实验室 PCB 与工厂产品设计之间的差异,并总结出一系列的设计规范和设计参考,以供设计人员和生产人员使用。 一、原理图...
* 设计小结:总结设计的结果,并对设计进行评价和改进。 12. 参考文献 * 参考文献:列出设计中使用的参考文献,以便于以后查阅和参考。 本课程设计旨在设计一带式输送机传动装置,通过计算和设计,确定传动装置的...
本压缩包文件“软件设计师上午下午题总结.rar”是针对软件设计师资格考试的学习资料汇总,旨在为备考者提供一个明确的学习路径和重点知识点梳理。虽然并非真题集,但这份资料对于理解考试大纲、把握考试方向具有重要...
在本项目中,我们主要探讨的是“Web课程设计——设计一个网站”,这是一项结合了CSS技术和JavaScript技术的实践性学习任务。在这个过程中,学生需要掌握网页制作的基本原理,理解前端开发的重要概念,并能够将理论...
这份工作总结及小结详细记录了一位软件设计师的成长经历,从最初的基础知识学习,到独立负责项目的实践,反映了软件设计师这一职业所需的专业技能和综合素质。 软件设计师的工作起始于对软件开发和工程架构基础知识...
4. 设计体会与小结:总结设计过程中遇到的挑战,解决办法,以及对整个项目的经验总结。 5. 参考文献:引用在设计过程中参考的技术文档或书籍。 6. 附录(源代码):提供完整的源代码,方便读者理解和复现。 评分...