随笔分类 -  设计模式

摘要:缺省适配模式为一个接口提供缺省实现,这样类型可以从这个缺省实现进行扩展,而不必从原有接口进行扩展。 作为适配模式的一个特例,缺省适配模式在java中有着特殊的应用。 模式的结构 缺省适配模式是一种平庸化的适配器模式。 源码如下:、 需要缺省适配的AbstractService类的源代码 packag 阅读全文
posted @ 2020-08-18 06:51 Vincent-yuan 阅读(227) 评论(0) 推荐(0) 编辑
摘要:适配器模式(Adapter Pattern)把一个类的接口变换成客户端期待的另一种接口,从而是原本因接口不匹配而无法一起工作的两个类能够一起工作。 适配器模式有两种不同形式 类的适配器模式 对象的适配器模式 类的适配器模式结构 类的适配器模式把被适配的类的API转换成目标类的API, 其静态结构如下 阅读全文
posted @ 2020-08-15 11:01 Vincent-yuan 阅读(116) 评论(0) 推荐(0) 编辑
摘要:这里给出一个原始模型模式的例子。孙大圣的身外身法术 浅复制 设计图如下: TheGreatestSage类扮演客户角色。 TheGreatestSage类 package com.vincent.prototype; public class TheGreatestSage { private Mo 阅读全文
posted @ 2020-08-14 07:40 Vincent-yuan 阅读(128) 评论(0) 推荐(0) 编辑
摘要:原始模型(Prototype)模式属于对象的创建模式。 通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。这就是原始模型模式的用意。 Java对象的复制 Java的所有类都是从 java.lang.Object 类继承而来的,而 Object 类提供 阅读全文
posted @ 2020-08-12 07:41 Vincent-yuan 阅读(271) 评论(0) 推荐(0) 编辑
摘要:建造模式是对象的创建模式。 建造模式可以将一个产品的内部表象和产品的生成过程分割开来, 从而可以使一个建造过程生成具有不同的内部表象的产品对象。 不同的产品可以有不同的内部表象,也就是有不同的零件。 对象性质的建造 有些情况条,一个对象会有一些重要的性质,在它们没有恰当的值之前,对象不能作为一个完整 阅读全文
posted @ 2020-08-07 07:53 Vincent-yuan 阅读(388) 评论(0) 推荐(0) 编辑
摘要:单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。 单例模式有以下的特点: 单例类只能有一个实例 单例类必须自己创建自己的唯一的实例 单例类必须给所有其他对象提供这一实例 饿汉式单例类 public class EagerSingleton { privat 阅读全文
posted @ 2020-08-03 23:04 Vincent-yuan 阅读(85) 评论(0) 推荐(0) 编辑
摘要:通过抽象工厂模式,可以处理具有相同或相似等级结构的多个产品族中的产品对象的创建问题。 抽象工厂模式的结构 从上图可以看出,抽象工厂模式涉及到以下角色: 抽象工厂角色(AbstractFactory): 通常使用java接口或者抽象类实现,是该模式的核心,与应用系统的商业逻辑无关。 具体工厂类角色(C 阅读全文
posted @ 2020-07-30 07:46 Vincent-yuan 阅读(194) 评论(0) 推荐(0) 编辑
摘要:工厂方法模式是类的创建模式,又叫虚拟构造函数模式或多态性工厂模式。 工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。 之前,我们说到简单工厂模式的优点是允许客户端相对独立于产品创建的过程,并在系统引入新产品的时候无需修改客户端,也就是说,它在某种程度上支持开闭原则。 阅读全文
posted @ 2020-07-29 07:08 Vincent-yuan 阅读(167) 评论(0) 推荐(0) 编辑
摘要:简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。 工厂模式专门负责将大量有共同接口的类实例化。 工厂模式的几种形态: 简单工厂模式(Simple Factory):又称静态工厂方法模式 工厂方法模式(Factory Method):又称多态性工厂模式或虚拟构造子模式 抽象工厂模式(Abst 阅读全文
posted @ 2020-07-27 23:16 Vincent-yuan 阅读(176) 评论(0) 推荐(0) 编辑
摘要:来源:剑指offer 这篇主要记录《剑指offer》书籍中的面试题2:实现Singleton模式 使用语言:C# 代码环境:VS2017 总共有5中解法,从前往后依次优化。 结构如下: 前言 这里先给出调用程序的代码 Program.cs 这里,会在每次创建一种Singleton模式的实现方法之后, 阅读全文
posted @ 2019-08-19 20:00 Vincent-yuan 阅读(244) 评论(0) 推荐(0) 编辑
摘要:1. 设计一个案例来实现租房功能。分析:在租房的过程中涉及到了3个对象,房东,中介,房客。 中介和房客具有相同的功能--租房。 可以设计如下: 2.上图的设计实际上就是一个代理设计模式 静态代理设计模式。 代理设计模式有4个角色 抽象角色 : 是一个接口,使得真实角色和代理角色具有相同的功能。 真实 阅读全文
posted @ 2019-07-28 21:03 Vincent-yuan 阅读(339) 评论(0) 推荐(0) 编辑