
设计模式
TechFlow
公众号:TechFlow
展开
-
详解command设计模式,解耦操作和回滚
大家好,欢迎来到设计模式专题,我们的主旨是介绍一些有趣好玩的设计模式。今天我们介绍的设计模式叫做命令模式(command),在这个模式下,我们可以实现do和undo的解耦,让使用方不用关心内部的实现细节。command模式这个模式我们在日常当中经常使用,举一个很简单的例子,比如说我们发布代码。发布了之后发现不小心发布上去了一个bug,这个时候我们应该做什么?很简单,就是回滚,把线上的代码回滚到这一次发布之前的代码。这样我们这次发布带来的改动就会被消除,那么就避免了bug的产生。那么,对于一个发布系统原创 2020-10-16 10:18:03 · 358 阅读 · 0 评论 -
从抽象类开始,详解责任链模式
大家好,欢迎大家阅读设计模式专题。今天我们继续介绍新的设计模式,和上次的链式模式不同,这一次要介绍的责任链模式不仅仅在Python当中有,在很多其他的语言当中同样支持,比如Java。Python和Java当中的这个设计模式是完全一样的,没有任何区别。和之前介绍的设计模式相比,今天介绍的设计模式同样不难。我们非常容易想明白它的原理。责任链在我们日常的开发当中,经常会有上下游的依赖,比如当前我们需要开发一份新的数据,需要用到上游的某一份老数据才能生成。这时候需要我们写一个接口,然后上游也随之改造,把它们原创 2020-10-07 09:59:01 · 557 阅读 · 0 评论 -
设计模式第二篇,链式方法模式
大家好,这是设计模式专题的第二篇文章,我们一起来聊聊链式方法的设计模式。链式方法也叫做流式方法,是一种相对比较新的概念,经常在流式计算或者类似的场景当中出现。举个例子,我们之前讲过的pyspark当中就用了这个模式,比如当我们处理rdd的时候,经过转换操作我们得到的仍然是一个rdd,直到遇到执行操作位置。dataframe也是一样的,我们转换阶段的操作我们可以连在一起写。我们来看一个例子:df.select("xx", "yy").withColumn("id", monotonically_incr原创 2020-09-25 11:32:07 · 431 阅读 · 0 评论 -
设计模式 | Catalog设计模式,抵御业务方需求变动
大家好,这是一个全新的专题——设计模式。其实可以选择的专题还有好几个,为什么选择设计模式呢?原因也很简单,首先是设计模式简单、易学。干货的文章固然好,但是普适性往往不强。另外一个很重要的点就是设计模式学习的好处非常明显,如果学得好的话,会觉得自己的编码能力有了质的突破。这并不是夸大其词,很多人包括我,在学习的时候都曾经有过这种感觉。设计模式简介设计模式这个词我想大家应该都听说过,但是它究竟是什么意思可能很多人并不清楚。其实设计模式就是一种经验,就是一种前人总结出来反复印证过可以解决各种问题或者是做出各原创 2020-09-18 10:02:42 · 320 阅读 · 0 评论