Observer 观察者模式


起步

观察者模式属于行为型,旨在定义一个一对多关系,当一个对象状态发生改变时,所有依赖对象都会自动接收通知。

观察者模式属于抽象模式,要点不在于代码实现上,不同应用场景会有不同的实现方式,但要解决的问题不会变。


Builder 建造者模式


起步

命令模式属于创建型,旨在解决多参数初始化类带来的复杂设计问题。

“多参数初始化类”的意思就是,实例化一个对象时需要传入大量的变量。另一方面,也许这些传入的变量之间存在一定的关系约束,比如需要构建一个正方形对象,那就要求传入的长宽值相等。


Template 模板模式


起步

模板模式全称应该是模板方法模式(Template method pattern),属于行为型。其利用继承关系,实现代码复用,同时确保子类扩展能力。

在这里我用 “子类扩展能力” 属于一家之言,主要想表达,模板模式在一定程度上限制了子类的扩展方法,或者说要求子类在预设的扩展点上进行功能扩展。


Bridge 桥接模式


起步

桥接模式属于结构型,其目的是将抽象和实现解耦,让它们可以独立变化。

这里“抽象”与“实现”都不是平常说的抽象类、子类等概念。用维基百科的原话就是:

The class itself can be thought of as the abstraction and what the class can do as the implementation.

(抽象)与类要做的事(实现)都在频繁变化时,桥接模式就有意义。


启动轻量级 Django


起步

相比 fastapi、flask 等 http 框架,django 一直被 python 程序员认为“重”。“重”有很多理解方式,我至少认为它不是在指责 django 大而全——由于自己多才多艺而被嫌弃,django 岂不是很冤?!所以我理解的、普遍意义的“重”是:django 总要给我提供我不需要的东西

在我看来,django-admin startprojectdjango-admin startapp 绝对是万恶之源。命令末尾一回车,我需要的不需要的都来了,项目的目录结构也被死死钉住。所以长期以来我对 django 绝无任何好感。直到一次在推特上表达心声,有个大佬对我的言论充满鄙夷,一来二去的交锋,最后被他推荐去看《Lightweight Django》。

我一直以来认为用 django 写 demo 是挺烦人的,但《Lightweight Django》的作者却说:不用麻烦了。