[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++进行图形用户界面编程的能力。同时,...
考虑到这一限制,我将就“机器人设计工作总结”这一主题,构建一套相对完整且系统的知识点总结。以下内容将不直接引用给定文件的部分内容,而是基于标题所暗示的主题来构建知识体系。 机器人设计是一门跨学科的领域...
C++课程设计总结 本篇总结主要讨论了C++课程设计的重要性和学习体验。通过学习《C++程序设计》,作者学习到了基本的理论知识,了解到了C++语言程序设计的思想,并具备初步的独立分析和设计能力。作者还强调了数据...
Java课程设计总结报告,是关于计算器的。2.主体功能 a.按下数字键在文本框上会显示数字,这是计算器最基本的功能。 b.按下数字键加上“+-*/%”加上数字键进行加、减、乘、除、求余计算。 c.按下“+-”键,计算器下...
MATLABGUI设计总结-matlab gui 设计总结.doc 最近做毕业设计用到GUI,搜集到了很多资料,现在传上来,和大家一起分亨。 一.10个小问题 二.MATLAB GUI编程中几个有用的程序段 1、 启动 2、 在GUI中使用Axes控件...
设计模式是软件开发中的宝贵财富,它是一种在特定情境下解决常见问题的模板,通过将通用解决方案模式化,使得开发者可以快速应对复杂的设计挑战。在本文中,我们将深入探讨三种重要的设计模式:抽象工厂模式、策略...
计算机专业毕业设计工作总结 本篇毕业设计工作总结报告主要讲述了作者在开发企业信息管理系统的设计和实现过程中所学到的知识和经验。 知识点1:系统开发理念 在开发企业信息管理系统时,作者秉持着严谨求实、开拓...
采用java技术构建的一个管理系统。整个开发过程首先对系统进行需求分析,得出系统的...最后对系统进行功能测试,并对测试结果进行分析总结。 包括程序毕设程序源代码一份,数据库一份,完美运行。配置环境里面有说明。
最后,总结部分会回顾设计过程,总结经验教训,对未来的改进提出建议。 参考文献提供了进一步学习设计模式的资料,而附录中的完整程序代码可供学习者参考和研究。通过这个课程设计,学习者不仅可以掌握Java编程,还...
为了“让每一个学生都能得到最优的发展”,我们将作业进行分层次设计,针对不同程度的学生设计不同程度的作业,依据学生分层情况匹配每一层的作业,以便满足不同层次学生的需要,让不同的学生能获得 不同的需求。...
Python 期末课程设计报告总结 本文是 Python 期末课程设计报告总结,从技术总结、实现的网络读书网站、书籍下载和书籍阅读系统等多方面进行总结。 技术总结: 本项目使用 Python 作为主要开发语言,Tkinter 库用于...
### 计算机算法设计和分析课程总结 #### 一、算法的概念与重要性 算法是计算机科学中解决特定问题的一系列明确指令的集合。它不仅限于编程领域,而是涵盖了数学、工程等多个学科。算法的特点包括有输入、输出、...
总结报告通常包括项目背景、需求分析、系统设计、实现过程、测试结果和经验总结等内容。它展示了开发者在整个项目周期中的思考和学习,有助于评估系统的效果并为后续改进提供参考。 总的来说,这个医院管理系统课程...
《双减背景下小学语文作业设计创新研究》课题阶段性总结 本文档是《双减背景下小学语文作业设计创新研究》课题阶段性总结报告,涵盖了课题的背景、研究思路、实施阶段、阶段性总结等方面的内容。 一、背景 在...
本文旨在总结 PCB 设计规范,通过对科林逆变器平台控制板的结构框图和设计规范的分析,指出实验室 PCB 与工厂产品设计之间的差异,并总结出一系列的设计规范和设计参考,以供设计人员和生产人员使用。 一、原理图...
* 设计小结:总结设计的结果,并对设计进行评价和改进。 12. 参考文献 * 参考文献:列出设计中使用的参考文献,以便于以后查阅和参考。 本课程设计旨在设计一带式输送机传动装置,通过计算和设计,确定传动装置的...
本压缩包文件“软件设计师上午下午题总结.rar”是针对软件设计师资格考试的学习资料汇总,旨在为备考者提供一个明确的学习路径和重点知识点梳理。虽然并非真题集,但这份资料对于理解考试大纲、把握考试方向具有重要...
在本项目中,我们主要探讨的是“Web课程设计——设计一个网站”,这是一项结合了CSS技术和JavaScript技术的实践性学习任务。在这个过程中,学生需要掌握网页制作的基本原理,理解前端开发的重要概念,并能够将理论...
设计模式分为三大类: 创建型模式,共五种: 工厂方法模式、抽象工厂模式、单例模式、构建者模式、原型模式。 结构型模式,共七种: 适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。...