首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【设计模式】-创建型模式-第2章第3讲-【建造者模式】

墨菲定律中提道:任何事都没有表面看起来的那么简单。无论在现实生活中还是在代码世界中,都存在一些复杂的对象,他们由多个部分组成,每个部分各具功能,协同运作。比如手机包含摄像头、CPU、电池等各种零部件。对于大部分用户而言,无须知道部件之间的组装细节,也几乎不会单独使用某个零部件,而是使用一部完整的手机。如果需要详细关注一个产品部件的生产、安装步骤,可以选择建造者模式对其进行设计与描述,将部件和其组装过程分开,分步创建一个复杂的对象。由于组装部件的过程复杂,因此,装配过程被分离到一个称作建造者的对象里,建造者返回给上层一个完整产品,而无需关心该产品的构建细节,这就是建造者模式的核心思想。

01
您找到你想要的搜索结果了吗?
是的
没有找到

Everything as General Purpose Code

大概是 2014 年,在老东家搞了一阵 DevOps 工具的设计开发,出了一个蛮有意思的设计:以 Pull/Merge Request 为模型枢纽,把需求、代码、构建、发布以及可观测性都关联起来,用一个 Dashboard 观测一个需求从提出到发布以及运行的的所有生命周期内容。那时候大概是 Jenkins 最后辉煌的年代,我第一次接触了 Infrastructrue as Code 的概念,从 Kubernetes 的状态机制、到 Jenkins 的 Pipeline as code,当然还有让我踏进 Kubernetes 门槛的 Ansible,以及可以直接合并到代码仓里面的 Grafana Template,都给刚脱离业务代码不久的我带来很大触动。(最近会上听说这个产品还活着,老怀大慰 :D),后面的日子里因为一直在跟各种 YAML 打交道,可以说 As Code 的概念已经成了我的思维习惯。

01

自动生成代码,开发效率妥妥的提高

序言:继续接上篇的live template ,idea骚操作虽然好,但是使用范围有限,只能是一段代码,无法对一些重复的逻辑,重复的类进行处理,既然我们遇到了这个问题别人也会遇到,那有没有现成的技术方案呐?of course !今天就介绍下偷懒大杀器——Freemaker。【FreeMarker 是一款 模板引擎:即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件】。官方的解释真的是高级,用一句话来说就是给程序员使用的,用来做内容生成的。

02
领券