标签: 手撕设计模式

12 篇文章

thumbnail
手撕设计模式——智能家居之外观模式
手撕设计模式——智能家居平台之外观模式 1.业务需求 ​ 大家好,我是菠菜啊,好久不见,今天给大家带来的是——外观模式。老规矩,在介绍这期内容前,我们先来看看这样的需求:在智能家居平台中,用户怎么样实现场景化操作(如“回家模式”“睡眠模式”)? 2.代码实现 Talk is cheap,show me your code. 初版实现思路: ​ 我们…
thumbnail
手撕设计模式——支付系统之适配器模式
手撕设计模式——支付系统之适配器模式 1.业务需求 ​ 大家好,我是菠菜啊,好久不见,今天给大家带来的是——适配器模式。老规矩,在介绍这期内容前,我们先来看看这样的需求:我们现在有一个对接过支付宝方式的支付系统,现在要将支付渠道从支付宝改为微信支付,但是微信支付和支付宝的接口方法名、参数、返回值完全不同,在不改动业务接口的情况下,我们该怎么做呢? …
thumbnail
手撕设计模式——消息推送系统之桥接模式
手撕设计模式——消息推送之系统桥接模式 1.业务需求 ​ 大家好,我是菠菜啊,好久不见,今天给大家带来的是——桥接模式。老规矩,在介绍这期内容前,我们先来看看这样的需求:我们现在要做一个消息推送系统,实现纯文本消息和html格式消息的推送,推送方式支持email、短信,我们该怎么实现? 2.代码实现 Talk is cheap,show me yo…
thumbnail
手撕设计模式——房产中介之代理模式
手撕设计模式——房产中介之代理模式 1.业务需求 ​ 大家好,我是菠菜啊,好久不见,今天给大家带来的是——代理模式。老规矩,在介绍这期内容前,我们先来看看这样的需求:我们有一套房产需要出售,但是我们抽不开身去带客户看房对接而且获客方式有限,我们该怎么实现? 2.代码实现 Talk is cheap,show me your code. 初版实现思路…
thumbnail
手撕设计模式——克隆对象之原型模式
手撕设计模式——克隆对象之原型模式 1.业务需求 ​ 大家好,我是菠菜啊,前俩天有点忙,今天继续更新了。今天给大家介绍克隆对象——原型模式。老规矩,在介绍这期之前,我们先来看看这样的需求:《西游记》中每次孙悟空拔出一撮猴毛吹一下,变出一大批猴子加入战斗,他到底是怎么变的?如果我们帮他实现这个功能,代码怎么设计? 2.代码实现 Talk is che…
thumbnail
手撕设计模式——计划生育之单例模式
手撕设计模式——计划生育之单例模式 1.业务需求 ​ 大家好,我是菠菜啊。80、90后还记得计划生育这个国策吗?估计同龄的小伙伴们,小时候常常被”只生一个好“”少生、优生“等宣传标语洗脑,如今国家已经放开并鼓励生育了。话说回来,现实生活中有计划生育,你知道设计模式中也有计划生育吗?它是怎么实现的? 2.代码实现 Talk is cheap,show…
thumbnail
手撕设计模式——复杂对象之生成器模式
手撕设计模式——复杂对象之生成器模式 1.业务需求 ​ 大家好,我是菠菜啊,好久不见,今天给大家带来的是创建型模式——生成器模式。老规矩,在介绍这期生成器模式前,我们先来看看这样的需求:现在有一个汽车装配的流水线,要支持轮胎、座椅、发动机等配件客户的定制,我们该怎么设计? 2.代码实现 Talk is cheap,show me your code…
thumbnail
手撕设计模式——工厂三兄弟之抽象工厂
手撕设计模式——工厂三兄弟之抽象工厂 1.业务需求 ​ 大家好,我是菠菜啊。今天给大家介绍工厂三兄弟最后一个兄弟——抽象工厂。老规矩,在介绍这期抽象工厂模式前,我们先来看看这样的需求:现在有俩个制造工厂,都要生产冰箱产品,并且客户在使用冰箱产品能够随意切换制造厂商,我们该怎么设计? 2.代码实现 Talk is cheap,show me your…
thumbnail
手撕设计模式——工厂三兄弟之工厂方法
手撕设计模式——工厂三兄弟之工厂方法 1.业务需求 ​ 大家好,我是菠菜啊。在介绍这期工厂方法模式前,我们先来看看这样的需求:升级之前的计算器,增加对数和指数运算。(看这篇文章前可以先回顾《设计模式——工厂三兄弟之简单工厂》这篇) 2.初步实现 Talk is cheap,show me your code. 实现初步思路: ​ 新增运算类的子类对…
thumbnail
手撕设计模式——工厂三兄弟之简单工厂
手撕设计模式——工厂三兄弟之简单工厂 1.业务需求 ​ 大家好,我是菠菜。在介绍这期简单工厂设计模式前,我们先来看看这样的需求:制作一个简单的计算器,能够实现控制台输入俩个数以及运算符完成运算。 2.初步实现 Talk is cheap,show me your code. 实现第一版思路: ​ 创建计算器类,控制台输入俩个数以及运算符,通过if条…