Loading

摘要: 本文节选自《设计模式就该这样学》 1 关于产品等级结构和产品族 在讲解抽象工厂之前,我们要了解两个概念:产品等级结构和产品族,如下图所示。 上图中有正方形、圆形和菱形3种图形,相同颜色、相同深浅的代表同一个产品族,相同形状的代表同一个产品等级结构。同样可以从生活中来举例,比如,美的电器生产多种家用电 阅读全文
posted @ 2021-11-12 13:39 Tom弹架构 阅读(941) 评论(0) 推荐(1) 编辑
摘要: 本文节选自《设计模式就该这样学》 1 工厂方法模式的应用场景 工厂方法模式主要适用于以下应用场景。 (1)创建对象需要大量重复的代码。 (2)客户端(应用层)不依赖产品类实例如何被创建、实现等细节。 (3)一个类通过其子类来指定创建哪个对象。 2 工厂方法模式的UML类图 工厂方法模式的UML类图如 阅读全文
posted @ 2021-11-11 12:46 Tom弹架构 阅读(959) 评论(0) 推荐(1) 编辑
摘要: 本文节选自《设计模式就该这样学》 1 使用简单工厂模式封装产品创建细节 接下来看代码,还是以创建一门网络课程为例。假设有Java架构、大数据、人工智能等课程,已经形成了一个生态。我们可以定义一个课程标准ICourse接口。 public interface ICourse { /** 录制视频 */ 阅读全文
posted @ 2021-11-10 14:01 Tom弹架构 阅读(821) 评论(2) 推荐(1) 编辑
摘要: 本文节选自《设计模式就该这样学》 1 使用委派模式模拟任务分配场景 我们用代码来模拟老板给员工分配任务的业务场景。 首先创建IEmployee员工接口。 public interface IEmployee { void doing(String task); } 创建员工EmployeeA类。 p 阅读全文
posted @ 2021-11-09 12:09 Tom弹架构 阅读(613) 评论(0) 推荐(1) 编辑
摘要: 本文节选自《设计模式就该这样学》 举个例子,我们在平时办公的时候经常通过邮件消息、短信消息或者系统内消息与同事进行沟通。尤其在走一些审批流程的时候,我们需要记录这些过程以备查。根据类型来划分,消息可以分为邮件消息、短信消息和系统内消息。但是,根据紧急程度来划分,消息可以分为普通消息、加急消息和特急消 阅读全文
posted @ 2021-11-08 16:11 Tom弹架构 阅读(872) 评论(2) 推荐(4) 编辑
摘要: 本文节选自《设计模式就该这样学》 通常的模板方法模式中会设计一个abstract的抽象方法,交给它的子类实现,这个方法称为模板方法。而钩子方法,是对于抽象方法或者接口中定义的方法的一个空实现,也是模板方法模式的一种实现方式。 1 模板方法模式中的钩子方法 我们以网络课程创建流程为例:发布预习资料 → 阅读全文
posted @ 2021-11-07 17:49 Tom弹架构 阅读(1309) 评论(0) 推荐(1) 编辑
摘要: 本文节选自《设计模式就该这样学》 1 使用策略模式实现促销优惠方案选择 大家都知道,咕泡学院的架构师课程经常会有优惠活动,优惠策略有很多种可能,如领取优惠券抵扣、返现促销、拼团优惠等。下面用代码来模拟,首先创建一个促销策略的抽象PromotionStrategy。 /** * 促销策略抽象 * Cr 阅读全文
posted @ 2021-11-05 14:31 Tom弹架构 阅读(998) 评论(0) 推荐(1) 编辑
摘要: 本文节选自《设计模式就该这样学》 1 使用透明组合模式实现课程目录结构 以一门网络课程为例,我们设计一个课程的关系结构。比如,我们有Java入门课程、人工智能课程、Java设计模式、源码分析、软技能等,而Java设计模式、源码分析、软技能又属于Java架构师系列课程包,每个课程的定价都不一样。但是, 阅读全文
posted @ 2021-11-04 13:02 Tom弹架构 阅读(1094) 评论(3) 推荐(2) 编辑
摘要: 本文节选自《设计模式就该这样学》 1 使用类适配器重构第三方登录自由适配 我们使用适配模式来实现一个实际的业务场景,解决实际问题。年纪稍微大一点的小伙伴一定经历过这样的过程。很早以前开发的老系统应该都有登录接口,但是随着业务的发展和社会的进步,单纯地依赖用户名密码登录显然不能满足用户需求。现在,大部 阅读全文
posted @ 2021-11-03 13:38 Tom弹架构 阅读(689) 评论(0) 推荐(1) 编辑
摘要: 本文节选自《设计模式就该这样学》 1 分析JDK浅克隆API带来的问题 在Java提供的API中,不需要手动创建抽象原型接口,因为Java已经内置了Cloneable抽象原型接口,自定义的类型只需实现该接口并重写Object.clone()方法即可完成本类的复制。 通过查看JDK的源码可以发现,其实 阅读全文
posted @ 2021-11-02 18:21 Tom弹架构 阅读(343) 评论(0) 推荐(0) 编辑