`
悲剧了
  • 浏览: 139781 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

设计总结(一)

阅读更多
[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]
0
0
分享到:
评论

相关推荐

    Java课程设计总结报告(计算器)

    Java课程设计总结报告,是关于计算器的。2.主体功能 a.按下数字键在文本框上会显示数字,这是计算器最基本的功能。 b.按下数字键加上“+-*/%”加上数字键进行加、减、乘、除、求余计算。 c.按下“+-”键,计算器下...

    MATLABGUI设计总结-matlab gui 设计总结.doc

    MATLABGUI设计总结-matlab gui 设计总结.doc 最近做毕业设计用到GUI,搜集到了很多资料,现在传上来,和大家一起分亨。 一.10个小问题 二.MATLAB GUI编程中几个有用的程序段 1、 启动 2、 在GUI中使用Axes控件...

    04747 Java程序设计(一) 自考 考点 大纲(自己总结)

    04747 Java程序设计(一) 自考 考点 大纲(自己总结,未完待续)

    我的软件设计模式小结

    设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统...

    python课程设计报告总结和体会.docx

    下面,我将按以下步骤进行总结: 一、学习python基础概念和语法结构 在课程一开始,我们在老师的带领下对python的基础概念和语法结构进行了学习,深入了解了python的特点和基本操作。通过课堂上的一些代码练习,我对...

    基于Javaweb的在线影院的设计和实现毕业设计程序

    采用java技术构建的一个管理系统。整个开发过程首先对系统进行需求分析,得出系统的...最后对系统进行功能测试,并对测试结果进行分析总结。 包括程序毕设程序源代码一份,数据库一份,完美运行。配置环境里面有说明。

    2018版 04747 Java语言程序设计(一)七八九十章知识点总结

    2018版 04747 Java语言程序设计(一)七八九十章知识点总结

    一个简单的购物网站的设计总结(论文呢)

    一个简单的购物网站的设计总结,也算是一篇论文,比较详细哦

    双减作业课题阶段性总结汇报小学数学分层作业设计课题小结.doc

    为了“让每一个学生都能得到最优的发展”,我们将作业进行分层次设计,针对不同程度的学生设计不同程度的作业,依据学生分层情况匹配每一层的作业,以便满足不同层次学生的需要,让不同的学生能获得 不同的需求。...

    c++课程设计总结 课程设计总结

    C++课程设计总结 经过一个学期对《C++程序设计》的学习,我学习到了基本的理论知识,了解到了C++语言程序设计的思想,这些知识都为我的课程实践和进一步的学习打下了坚实的基础。

    设计模式自己总结一句话描述

    设计模式分为三大类: 创建型模式,共五种: 工厂方法模式、抽象工厂模式、单例模式、构建者模式、原型模式。 结构型模式,共七种: 适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。...

    机票预订系统需求分析详细设计项目总结报告

    在本机票预定系统项目的前一阶段,也就是概要设计阶段中,已经将系统用户对本系统的子模块功能做了详细的阐述,这些模块功能具体设计将在本报告中详尽得以叙述及阐明。 本阶段已在系统的概要设计的基础上,对机票...

    个人精简总结笔记_设计模式.pdf

    设计模式,个人笔记摘要。...换句话说,它是特定解决问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用,其目的是为了提高代码的可重用性、代码的可读性、代码的可靠性。

    数据库设计小结.doc

    "数据库设计小结 " "教学内容 "教学步骤、方 " " "法 " "本章小结 " " "在这一章,我们学习了数据库设计的具体步骤和方法。在" " "数据库系统的分析和设计阶段,大的步骤包括:需求分析" " ";概念结构设计(设计...

    数据结构课程设计总结报告

    计算机专业数据结构课程设计,花费了我一周的时间,总于将这个报告做完了,值得下载分享一下,想能给各位带来用处。

    医院管理系统的课程设计(含总结报告)

    这是一个用纯C语言编写的医院管理系统课程设计,提供源代码,使用见说明 实现用户界面与SQL的交互 提供总结报告 希望和大家交流

    数据结构课程设计总结

    这次数据结构的程序设计,对于我来说是一个挑战。我对数据结构的学习在程序的设计中也有所体现。课程设计是培养学生综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作...

    ssm运动器材在限购系统设计毕业设计程序

    采用java技术构建的一个管理系统。整个开发过程首先对系统进行需求分析,得出系统的...最后对系统进行功能测试,并对测试结果进行分析总结。 包括程序毕设程序源代码一份,数据库一份,完美运行。配置环境里面有说明。

    操作系统课程设计——Linux二级文件系统设计

    使用文件来模拟外存,进行数据结构设计和操作算法的设计,实现一个文件系统并实现基本的文件操作(为了简便文件系统,不考虑文件共享,文件系统安全以及管道文件与设备文件等特殊内容)。要求: 1、对程序的每一部分...

    WIFI天线设计总结.pdf

    WIFI天线设计总结,包括天线的种类,产品图片性能及成品,应用领域介绍,及常用的几种对比

Global site tag (gtag.js) - Google Analytics