外观模式
摘要:1.UML类图 2. 实例概况 背景:小成的爷爷已经80岁了,一个人在家生活:每次都需要打开灯、打开电视、打开空调;睡觉时关闭灯、关闭电视、关闭空调; 冲突:行动不方便,走过去关闭那么多电器很麻烦,代码如下: **1. **电器类: 1 //灯类 2 public class SubSystemA_
阅读全文
模板模式
摘要:1. 实例概况 背景:小成希望学炒菜:手撕包菜 & 蒜蓉炒菜心 冲突:两道菜的炒菜步骤有的重复有的却差异很大,记不住 解决方案:利用代码记录下来 b. 使用步骤 步骤1: 创建抽象模板结构(Abstract Class):炒菜的步骤 1 public abstract class Abstract
阅读全文
代理模式
摘要:1.定义 给目标对象提供一个代理对象,并由代理对象控制对目标对象的引用 2.实例概况 背景:小成希望买一台最新的顶配Mac电脑 冲突:国内还没上,只有美国才有 解决方案:寻找代购进行购买 代购(代理对象) 代替 我(真实对象) 去买Mac(间接访问的操作) 使用步骤 步骤1: 创建抽象对象接口(Su
阅读全文
适配器模式
摘要:1. 介绍 1.1 模式说明 定义一个包装类,用于包装不兼容接口的对象 包装类 = 适配器Adapter; 被包装对象 = 适配者Adaptee = 被适配的类 1.2 主要作用 把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法一起工作的两个类能够在一起工作。 适配器模式的形
阅读全文
策略模式
摘要:1.UML类图 2.实例概况 背景:小成有一家百货公司,最近在定年度的促销活动 冲突:每个节日用同一个促销活动太枯燥,没吸引力 解决方案:针对不同节目使用不同促销活动进行促销 使用步骤 步骤1: 定义抽象策略角色(Strategy):百货公司所有促销活动的共同接口 1 public abstract
阅读全文
工厂方法模式
摘要:1.前言 工厂类集中了所有实例(产品)的创建逻辑,一旦这个工厂不能正常工作,整个系统都会受到影响; 违背“开放 - 关闭原则”,一旦添加新产品就不得不修改工厂类的逻辑,这样就会造成工厂逻辑过于复杂。 简单工厂模式由于使用了静态工厂方法,静态方法不能被继承和重写,会造成工厂角色无法形成基于继承的等级结
阅读全文
简单工厂模式
摘要:1. 含义 简单工厂模式又叫静态方法模式(因为工厂类定义了一个静态方法) 现实生活中,工厂是负责生产产品的;同样在设计模式中,简单工厂模式我们可以理解为负责生产对象的一个类,称为“工厂类”。 2. 解决的问题 将“类实例化的操作”与“使用对象的操作”分开,让使用者不用知道具体参数就可以实例化出所需要
阅读全文
几种单例模式分析
摘要:在java中,单例有很多种写法,面试时,手写代码环节,除了写算法题,有时候也会让手写单例模式, 这里记录一下单例的几种写法和优缺点。 1.初级写法 2.饿汉式 3.懒汉式 4.双锁检验 5.内部类 6.枚举 1.初级写法 1 package sheJiMoShe; 2 3 public class
阅读全文