08 2017 档案
摘要:一、引言 昨天公司EDI导入功能出现问题,经排查是由于引用Com组件Microsoft.Office.Interop.Excel.dll,操作Excel引起,可是现在客户电脑压根都没装Office,还倒个鬼数据啊(画个圈圈xx下之前写这个功能的人),一次重构操作Excel功能之旅由此开始。。。 二、
阅读全文
摘要:一、引言 上篇博文中我们分享了访问者模式,访问者模式是把作用于数据结构上的操作封装到访问者类中,使得数据结构与操作分离。今天我们要学习的备忘录模式与命令模式有点相似,不同的是,命令模式保存的是发起人的具体命令(命令对应行为),而备忘录模式保存的是发起人的状态(状态对应数据内部结构,如属性)。下面请看
阅读全文
摘要:一、引言 上篇博客中与大家分享了责任链模式,责任链模式主要应用于系统中某个功能需要多个参与者完成的场景,今天将分享我对访问者模式的理解 二、访问者模式 定义:表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作 下面是访问者模式结构图: 场景:人有男
阅读全文
摘要:一、引言 你在公司里请过假吗?员工向管理者发出请求,每个管理者都有可能接收到请求,将这些管理者串成一个链子,直到有处理这个请求为止。目前我们公司请假制度是:2天以内项目经理审批即可,3天以内项目总监参与审批,超过3天的休假必须经过总经理签字批准。这个常见的生活场景就用到了我们今天要学习的内容,责任链
阅读全文
摘要:一、引言 平时去商场买东西,会遇到各种各样的商场促销活动,例如:黄金会员打9折,铂金会员打8折,钻石会员打7折...通常的做法,定义一个算法类,我们根据会员类型,使用if-else判断获得不同的算法。这样的确解决了问题,但是哪天商场新增活动了,要买300返100,我们就需要去修改算法类了,违背了“开
阅读全文
摘要:一、引言 上篇博客中学习了中介者模式,我们留下了一个问题,当出现多个玩家需要输赢状态条件判断时,可不可以不去修改中介者类,因为如果每新增一个条件判断,就要修改中介者类,破坏了封装,违背开闭原则。今天我们学习的内容就是要解决这种业务场景,状态模式 二、状态模式 定义:当一个对象的内在状态改变时允许改变
阅读全文
摘要:一、引言 前两天休息日在网上打QQ斗地主,每盘结束后腾讯游戏平台会自动计算输赢的欢乐豆,嗯?挺好的,平时在面对面玩斗地主时,一盘游戏结束后,我们需要了解每个人的出牌状况,然后算出来输赢。现在有了游戏平台,玩家之间计算输赢这个操作交给了游戏平台,我们不再需要了解每个人的出牌状况。在软件设计中,我们将解
阅读全文
摘要:一、引言 相信猿友都大大小小经历过一些面试,其中有道经典题目,场景是猫咪叫了一声,老鼠跑了,主人被惊醒(设计有扩展性的可加分)。对于初学者来说,可能一脸懵逼,这啥跟啥啊是,其实博主当年也这感觉,O(∩_∩)O哈哈~好了,废话不多说,今天我们要学习的内容就是要解决这种业务场景——观察者模式,又叫发布-
阅读全文
摘要:一、引言 上篇博客中学习了命令模式,是将行为抽象为命令,使得行为请求者和接收者形成低耦合关系。我们知道行为型设计模式关注的是对象职责的分离,今天我们将学习一个新的设计模式,迭代器模式: 二、迭代器模式 定义:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部显示 下面是迭代器模式结构
阅读全文
摘要:一、引言 起初餐馆吃饭都是客人和厨师直接沟通,菜谱是一样的,可是客人多了的时候,有的客人可能有急事不吃了要退单,还有的客人点很多菜需要记录类别和次序等现象,这时服务员角色的出现解决了问题。那么面对某些无法抵御变化的“紧耦合”的场景如何做程序设计呢?命令模式设计便出现了,使得“行为请求者”与“行为实现
阅读全文
摘要:一、引言 说到模板,顾名思义:就是样板,整体架构已经有了,你只需要填充自己的特定内容就可以了。如:简历模板,论文模板,PPT模板等 在软件设计中,模板方法模式与之很相似,下面请看我们今天要学习的模板方法模式 二、模板方法模式 定义:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子
阅读全文
摘要:一、引言 在系统开发过程中,大多会遇到跨网络做系统应用间数据对接问题,但目标对象不允许跨网络直接访问数据,通常考虑到网络和安全性能等因素,开发者会在客户端和目标对象间添加一层中间层--代理层,也是即将要介绍的代理模式(Proxy)。 二、代理模式介绍 在介绍代理模式前,我们首先看一下代理模式的分类
阅读全文
浙公网安备 33010602011771号