新环境第一次使用设计模式有感

  换了一家公司,感觉好对不起以前那些领导的栽培和培养啊,但是没办法,我真的受不了那些烟味和每天加班到好晚好晚的工作环境,也许这就是所谓的不合吧。。

到了新的一家公司,明显比刚出来的时候要好太多,别人一说什么东西我都会有反应,而且不会一脸懵b的问别人还不知道别人说了些啥。。感觉??。

  闲话不多说,先看在这边用到过的设计模式的思想,首先第一个命令模式+策略模式+构造模式(只是用到了其中的思想,但不是标准的用法)

  需求:在每个页面中实现匹配功能,每个页面要匹配多条主数据,每条主数据匹配后,将匹配的关键数据再保存到另一个表中做为匹配记录,进行备份。

  思路:每一个页面对应一个实体,每个实体都要按照不同的策略产生多条主数据匹配信息的实体。于是我想定义一个接口,这个接口产生一条匹配记录,将不同需要产生记录实体的主数据实现该接口(按不同的策略实现不同的功能和数据),然后定义一个类(命令类)执行这个接口里面的方法。代码如下:

/** * 根据不同的实现类实现不同的TmOdsDygx数据 * 然后根据生成出来的数据进行保存 */public interface EntityBuild {    public void saveTmOdsDygx(String dubboCode);}
/** * 保存EntityBuild的集合,并提供执行命令的方法 */public class BuildContext {    private List<EntityBuild> ebs = new ArrayList<EntityBuild>();

public void saveEntity(String dubboCode){        for(EntityBuild eb:this.ebs){            if(eb != null) {                eb.saveTmOdsDygx(dubboCode);            }        }    }    public void addEntity(EntityBuild entity){        ebs.add(entity);    }}

  /*****************************************此类实现该接口***************************************/

    @Override   public void saveTmOdsDygx(String dubboCode) {//实现该接口方法      if(StringUtils.isNotBlank(this.id)) {         TmOdsdygx tmOdsdygx = new TmOdsdygx();         tmOdsdygx.setOdsName(this.mc);         tmOdsdygx.setTmZsjqd("22");         tmOdsdygx.setTmId(this.id);         tmOdsdygx.setTmCode(this.dyBm);         tmOdsdygx.setTmName(this.dyMc);         DubboResourceLoadUtils.invoikeDubbo1(dubboCode, "tmOdsdygxService", "save", tmOdsdygx, null);      }   }}/***************************************************************************************/
@RequestMapping(value = "plSave",method = RequestMethod.POST)public String plSave(OdsScPzwh osp ,RedirectAttributes redirectAttributes){//调用模板+命令模式   List<OdsScPzwh> osps = osp.getOdsScPzwhs();   String dubboCode = officeService.get(UserUtils.getUser().getCompany().getId()).getDubboCode();   String [] ppCheck = osp.getAllCheck().split(",");   for(OdsScPzwh o : osps){      if(o != null){         for (int i = 0; i < ppCheck.length; i++) {            if(o.getId().equals(ppCheck[i])){               BuildContext bc = new BuildContext();//实例化一个命令类               bc.addEntity(o.getTmXscpfl());//将实现策略接口的类添加进来               bc.addEntity(o.getTmJt());               bc.addEntity(o.getTmPpcj());               bc.saveEntity(dubboCode);//用命令类执行这些策略            }         }         DubboResourceLoadUtils.invoikeDubbo1(dubboCode, "odsScPzwhService", "matchUpdate", o, null);      }   }   addMessage(redirectAttributes, "成功匹配");   return "redirect:"+Global.getAdminPath()+"/scbwh/odsScPzwh";}

我看见好的博客写手他们的代码都有背景,我都不知道怎么弄,所以有相关经验的人记得密我,告诉我怎么样才能把这样的随笔写的更加精致哈~~~使用设计模式后发现确实少了好多的重复代码,而且不需要到处去找别的地方的代码复制粘贴了,也是体验了一把设计模式的好处吧。嘿嘿嘿,这只是工作一年经验的人写的一波随笔,希望各位牛逼的大佬多来指点指点小弟哈~~~~~~~~~~~~~

原文地址:https://www.cnblogs.com/rey888/p/8587261.html

时间: 2024-08-02 11:40:32

新环境第一次使用设计模式有感的相关文章

JAVA设计模式有感

记得在大学学JAVA那阵,就觉得JAVA是一个c语言的一个包装,各种封装好的类库.功能,学习JAVA能快速上手编码.时隔8年,我感觉自己不懂JAVA. 最近看了有1个月的设计模式了,进度比较缓慢,一共才看了4个"策略模式","观察者模式","装饰者模式","工厂模式".也谈一谈自己的感受.其实这些设计模式以前也看过,当时的水准也就是硬生生记下了每个设计模式是怎么运作的,从没有想过它遵循了什么原则,达到了什么目的.因此,看过一遍

Ingress 记萌新的第一次连多重(xjbl)

之前为了升七,ArtanisWei学长告诉我可以去紫金园雕塑[这是什么地方啊],顺带靠卖萌骗了一桶key 于是屁颠屁颠的跑去按照群里攻略开始连多重[馒头 by handsomepeach],连了一百年...这攻略怎么让人xjb跑啊QwQ 于是连出来这个 于是桃大就让绿军来炸 然后就没有然后了[躺],手机噼里啪啦一阵乱响爹地的江山就没了[哭唧唧] 晚上不服气又来了一次,矮油我滴妈晚上一个人真口怕,passerg就陪我摸了一遍就跑路了我勒个去 然后今天下定决心决定自己来连一次多重 于是萌新的第一次多

LFS(2)建立新用户和新环境

本来想使用我的日常工作用户mirage,但是看到LFS-Book里建立了新账户还进行了各种设置,我也就建立了新账户,防止不小心搞破坏. 建立新的group名为lfs,建立新用户lfs, groupadd lfs useradd -s /bin/bash -g lfs -m -k /dev/null lfs -s 是指定默认的shell,不指定也行,反正默认都是bash -g 是指定新用户将加入lfs组 -m 这个选项指明为新用户建立家目录,(这个选项不可省略,会报错) -k 这个选项是指定从/d

Oracle发布OSS suite新版本,适应开放的新环境

运营支撑系统(OSS)市场正在面临一些重大的变化,原因在于开放的软件定义网络(SDN)和网络功能虚拟化(NFV)技术对OSS专有模型施加了压力,包括Oracle在内的一些较大的OSS供应商已经开始采取措施应对这种变化. 现有的OSS通常比较传统而私有化,它需要做一些改变才能适应这个开放的新环境.上周,Oracle发布了OSS suite新版本来适应虚拟化环境.该版本新增的功能包括:动态地提供运营商级的以太网电路.目录导出功能(允许服务信息复制数据和自动化创建服务).改良的多订单处理程序(针对需要

部署新环境Websocket不能建立成功

1.背景:在原来已经写好的项目,需要重新部署一套新的环境,这里主要是nginx , 和项目代码. 2.问题:在代码没有改动的前提下,页面上建立websocket 总是建立不成功,不成功的主要原因是报了603(603是我们后台自定义的错误编码,是请求后缀不正确的错误,这个其实不重要) 3.排查原因:在后台搜索603的错误code,发现是在一个Handler 中处理而设置的code,这个Handler主要是处理请求是否合法以及登录token的验证逻辑.但是现在在建立websocket的时候,却进入了

服务器新环境搭建笔记

一,安装上传命令 yum -y install lrzsz 二,安装配置JAVA(必须要SUN的JDK,openJDK是不可以的(openJDK支付加密会报错),目前用的版本是1.7) 1,检测java版本,如果是openJDK,则要卸载掉 yum list installed |grep java yum -y remove java-1.7.0-openjdk* 2,如果没有安装Sun的JDK,则安装. 下载地址:http://www.oracle.com/technetwork/java/

设计模式有感

1.简单的工厂模式 有感:工厂类包含必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖. 2.策略模式 定义:它定义了算法家族,分别分装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户. 有感:策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合.策略模式的Strategy类层次为Context定义了一系列的可

新环境新挑战

来这家公司已经工作八天了,总体感觉是我非常喜欢的技术类型的.很有挑战性.跟之前的公司来比的话,上家公司那只能叫闲的蛋疼了.这家公司给人的感觉,老大没架子,老总也没架子,天天能见到老总,人都是比较有亲和力的.员工都是蛮拼的,我去的第一周,就看到有人通宵加班的,我还没玩过通宵呢,那是啥感觉啊,说实话,想试一试(开个玩笑). 来的第一周,老大不在,之前已经答复说去这家公司,老大已经知道,提前给安排了任务,让研究sharepoint.说是需要为移动端的app提供接口,让研究研究Rest API. 研究就

Linux 快速查看系统配置-熟悉新环境的配置

问题背景: 当我们使用新的环境的时候,需要很快得熟悉自己环境的配置,这时候我们如果知道一些命令就极为方便了.这样你就能对自己的环境较为熟悉,进行工作的时候也能随心所欲了. 如果你使用workstation 版本,如果你使用的是gnome/kde桌面环境,你也可以通过系统设置工具来详细查看自己的环境的配置,只需要轻点几下鼠标,就可以完成你的目的了.下面主要讲解命令行的方式,只要稍微敲几下键盘就能完成自己的目的,也是很是方便得,这种方式也是比较适合我这种懒人,哈哈. 命令(长期更新): 系统(内核)