手撕设计模式——智能家居平台之外观模式 1.业务需求 大家好,我是菠菜啊,好久不见,今天给大家带来的是——外观模式。老规矩,在介绍这期内容前,我们先来看看这样的需求:在智能家居平台中,用户怎么样实现场景化操作(如“回家模式”“睡眠模式”)? 2.代码实现 Talk is cheap,show me your code. 初版实现思路: 我们…
手撕设计模式——消息推送之系统桥接模式 1.业务需求 大家好,我是菠菜啊,好久不见,今天给大家带来的是——桥接模式。老规矩,在介绍这期内容前,我们先来看看这样的需求:我们现在要做一个消息推送系统,实现纯文本消息和html格式消息的推送,推送方式支持email、短信,我们该怎么实现? 2.代码实现 Talk is cheap,show me yo…
手撕设计模式——房产中介之代理模式 1.业务需求 大家好,我是菠菜啊,好久不见,今天给大家带来的是——代理模式。老规矩,在介绍这期内容前,我们先来看看这样的需求:我们有一套房产需要出售,但是我们抽不开身去带客户看房对接而且获客方式有限,我们该怎么实现? 2.代码实现 Talk is cheap,show me your code. 初版实现思路…
手撕设计模式——复杂对象之生成器模式 1.业务需求 大家好,我是菠菜啊,好久不见,今天给大家带来的是创建型模式——生成器模式。老规矩,在介绍这期生成器模式前,我们先来看看这样的需求:现在有一个汽车装配的流水线,要支持轮胎、座椅、发动机等配件客户的定制,我们该怎么设计? 2.代码实现 Talk is cheap,show me your code…
手撕设计模式——工厂三兄弟之抽象工厂 1.业务需求 大家好,我是菠菜啊。今天给大家介绍工厂三兄弟最后一个兄弟——抽象工厂。老规矩,在介绍这期抽象工厂模式前,我们先来看看这样的需求:现在有俩个制造工厂,都要生产冰箱产品,并且客户在使用冰箱产品能够随意切换制造厂商,我们该怎么设计? 2.代码实现 Talk is cheap,show me your…
手撕设计模式——工厂三兄弟之工厂方法 1.业务需求 大家好,我是菠菜啊。在介绍这期工厂方法模式前,我们先来看看这样的需求:升级之前的计算器,增加对数和指数运算。(看这篇文章前可以先回顾《设计模式——工厂三兄弟之简单工厂》这篇) 2.初步实现 Talk is cheap,show me your code. 实现初步思路: 新增运算类的子类对…