设计模式
设计模式
calefaction_2015
我就是我 是颜色不一样的烟火
展开
-
设计模式之备忘录
备忘录模式在生活中还是挺常见的一种功能,像编辑器的恢复之前操作,浏览器中的后退以及玩游戏中的悔棋都属于较为常见的一种。 备忘录模式(Memento)的结构 暂时略过: 代码示例(黑箱实现):(大致原理:游戏发起人内部定义Memo对象 对外实现IMemo接口,并保存在Caretker对象里,等Originator经过一系列操作如fight,后想要恢复则调用内部recover接口,参数则是之前保存在Caretker对象里的IMemo对象 从而实现黑箱备忘录实现, 这样对发起人实现了宽接口, 对外实现了原创 2022-05-25 06:57:47 · 176 阅读 · 0 评论 -
设计模式之命令模式
命令模式顾名思义不要去询问(Tell, Don’t Ask)”原则。 从字面意思讲,一个对象应该命令其他对象要干什么,而不是去查询其他对象状态再决定要做什么。 通过引入命令接口实现发起者和执行者之间的解耦;如果后期更换执行者,可以优雅的实现扩容,符合设计模式的开闭原则。但也增加的代码架构复杂度。 UML类图如下:(待更新) 代码如下: package com.mp.mng.platform.command; /** * 命令模式 命令接口 */ public interface Comm原创 2022-05-21 08:12:24 · 150 阅读 · 0 评论 -
code review 总结(更新ing)
1. 静态工厂方法,不用构造器;(Effective java) 2. 枚举类代替魔法值,以及不可变常量放入final类中,构造器私有,防止被误实例化; 3. 少用内部类,因为每新增一个类,都要被类加载,耗费性能;(遵循最小用够用原则); 4.对象转换时候少用BeanUtils.copyProperties(dest, oirgin),因为底层是通过反射实现的,较为耗费性能;推荐使用对象getset方法,推荐idea优秀插件之codeMaker ...原创 2022-03-07 23:32:11 · 208 阅读 · 0 评论 -
设计模式之模板模式
1. 背景 最近闲暇时间看了一篇关于模板模式的文章, 仔细想了下很是巧妙;结合曾经做过的项目,现在想想都可以通过模板模式来实现,顾作次此文,以记之。 2. 概念 在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 ...原创 2021-07-19 22:59:30 · 152 阅读 · 0 评论 -
java设计模式之策略模式
引言 为了应对需求的变更,我们需要采用一些设计模式来降低类之间的耦合度。 一.简介 策略模式将可变的部分从程序中抽象分离成算法接口,在该接口下分别封装一系列算法实现。 策略模式的最大特点是使得算法可以在不影响客户端的情况下发生变化,从而改变不同的功能。 二.优、缺点 优点: 1、可以动态的改变对象的行为 缺点: 1、客户端必须知道所有的策略类,并自行决定...原创 2019-07-10 02:44:46 · 193 阅读 · 0 评论 -
[转]微信红包的架构设计简介
@来源于QCon某高可用架构群整理,整理朱玉华。 背景:有某个朋友在朋友圈咨询微信红包的架构,于是乎有了下面的文字(有误请提出,谢谢) 概况:2014年微信红包使用数据库硬抗整个流量,2015年使用cache抗流量。 微信的金额什么时候算? 答:微信金额是拆的时候实时算出来,不是预先分配的,采用的是纯内存计算,不需要预算空间存储。。 采取实时计算金额的考虑:预算需要占存储,实时效...转载 2019-10-23 15:37:30 · 1267 阅读 · 0 评论