设计模式
文章平均质量分 83
阿山德福
积跬步之功,以至千里。
展开
-
设计模式之命令模式详解
本文详细介绍了设计模式之命令模式的具体实现,为何如此设计的理由、好处,以及一些改进扩展,包括命令队列、命令撤销、封闭Receiver等。原创 2017-01-24 21:14:25 · 495 阅读 · 0 评论 -
设计模式之单例模式
单例模式顾名思义,一个类只允许有一个实例,因而只能创建一次,之后访问返回的都是第一次创建的实例。因为不能随意创建,单例类的构造方法都是私有的,只能通过静态方法来获取实例。单例模式分为饿汉模式和懒汉模式,区别在于创建实例的时机不同:饿汉模式在类初始化的时候创建;懒汉模式在调用获取实例方法时创建。1. 懒汉模式(Lazy)public class LazySingleton { private st...原创 2018-04-17 20:58:11 · 320 阅读 · 1 评论 -
设计模式之装饰者
一、应用场景 先看一个问题:奶茶可以添加不同的配料:珍珠、西米露、烧仙草等等,每种配料价格不同,可以任意搭配。最终价格为基础价格加上配料钱,如何来实现这个类呢?一种方案是使用继承:1. 首先定义一个奶茶基类,有一个算账的抽象方法。 2. 对于加珍珠的,加牛奶的,加烧仙草的 ,加西米露的等等,分别写一个子类继承复写基类的算账方法。 然后问题出现了:对于加牛奶和烧仙草的得写一个类,对于牛...原创 2018-04-17 20:35:18 · 229 阅读 · 0 评论 -
设计模式之工厂、抽象工厂
一、应用场景工厂模式应用非常广泛,意在抽象出一层专职管理对象产生以及对象间的关系,让我们能够专注于业务开发:1. 不用去写许许多多的new方法,替换实现类还得挨个修改。2. 类中不涉及实现类,对象间只存在接口级别的耦合,客户端调用注入实现类即可。由于工厂模式变种非常多,这里只讲一下常用的简单工厂和抽象工厂。二、源码分析1. 简单工厂public interface IProduct { voi...原创 2018-04-23 09:24:08 · 128 阅读 · 0 评论 -
设计模式之观察者
一、应用场景假设一个场景,我们特别喜欢看一部电视剧,但是这剧更新时间很不稳定,而我又特别想更新的第一时间就追。有什么好办法吗?方案一:我们守着这部剧,不断去刷新网页,只要一更新我立马就能知道。简单估摸一下代码实现,我们需要写一个监听线程来定时监听更新事件。但是这种方案弊端很明显,我必须时刻分神关注,寸步不离才行,非常耗费性能。方案二:我们只需要轻轻点一下订阅,这部剧一旦更新立马就给我推送通知。这就...原创 2018-04-18 23:14:41 · 180 阅读 · 0 评论 -
设计模式之原型模式
一、应用场景假设我们要创建一个非常复杂的对象,光是组装对象就写了一上午,之后还得多次创建属性基本相同的实例,怎么办?原型模式告诉我们,直接从内存二进制流进行对象拷贝就好啦,并且jdk有现成的实现,还是在Object类中实现的。二、模式结构因为Object类帮我们实现好了,所以我们只需要重写一下clone方法,扩大访问权限即可。三、源码分析public class Prototype impleme...原创 2018-04-24 23:26:07 · 143 阅读 · 1 评论