设计模式
看大话设计模式书籍,以java语言记录读书笔记
ZeWe
偷影子的人
展开
-
简单工厂模式-spring注入版
简单工厂模式请移步设计模式学习-简单工厂类最近做一个通用查询类接口,想到用工厂模式来实现,实现的时候出现了一个问题,就是我的具体执行类中需要 注入 service服务(取数据库数据),我想用spring的@Autowired 注解 注入。但是我的工厂中是用反射实现的。例如这样Class fruit = Class.forName(type);return (Fruit) frui...原创 2019-03-12 09:26:57 · 2063 阅读 · 2 评论 -
设计模式学习-职责链模式
Chain of Responsibility(CoR)模式也叫职责链模式或者职责连锁模式,是行为模式之一,该模式构造一系列分别担当不同的职责的类的对象来共同完成一个任务,这些类的对象之间像链条一样紧密相连,所以被称作职责链模式。要实现职责链模式,需要满足该模式的基本条件:1、对象链的组织。需要将某任务的所有职责执行对象以链的形式加以组织。2、消息或请求的传递。将消息或请求沿着对象链传递,...原创 2019-03-05 21:05:22 · 231 阅读 · 0 评论 -
设计模式学习-观察者模式
观察者模式是一种多对一的关系,即多个观察者对象 观察 一个被观察者对象,当被观察者对象状态发生变化时,能自动通知观察者对象执行相应动作。观察者模式提供给关联对象的一种同步通信的方式,下面来看结构图(截自 程杰 大化设计模式)两个角色:Subject:被观察者,一般为一个抽象类或接口,其中有一个聚集保存所有注册的观察者,一个方法用于通知所有的观察者,Subject需要维持(添加...原创 2019-02-23 17:10:13 · 248 阅读 · 0 评论 -
设计模式学习-工厂方法模式
工厂方法模式实际上是简单工厂的一种延伸模式,属于类的创建型模式又被称为多态工厂模式 。工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口。下面来看结构图(摘自 程杰 大话设计模式 )下面来看代码:1、水果接口 和 水果工厂接口// 水果接口pub...原创 2018-12-16 21:34:56 · 189 阅读 · 0 评论 -
设计模式学习-建造者模式
Builder模式是一种对象创建型模式之一,将一个复杂对象的构建与它的表示分离,隐藏复合对象的创建过程,它把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态地创建具有复合属性的对象。建造者模式用户不需要关注具体建造过程与细节,用户只需要指定建造者类型。下面看结构图(摘自 程杰 大化设计模式) 下面来看代码吧(建房子)1、具体对象House// 房子有三个组成部分...原创 2018-12-09 23:00:35 · 259 阅读 · 0 评论 -
设计模式学习-单例模式
在开发过程中常常会有这样的需求:在多个线程之间,共享同一个资源或者操作同一个对象。 在整个程序空间使用全局变量,共享资源。这样就需要保证一个类只生成一个唯一的实例对象。这就是单例模式了。GoF对单例模式的定义是:保证一个类、只有一个实例存在,同时提供能对该实例加以访问的全局访问方法。下面来看结构图(摘至 程杰 大话设计模式)设计模式类时要注意两点:构造方法需要priv...原创 2018-12-05 22:46:19 · 210 阅读 · 0 评论 -
设计模式学习-原型模式
原型模式是一种对象创建型模式,它采取复制原型对象的方法来创建对象的实例。使用原型模式创建的实例,具有与原型一样的数据。原型模式可以看作原型对象对自身的一个克隆。根据对象克隆深度层次的不同,有浅度克隆与深度克隆。 下面看原型模式结构图(摘自 程杰 大话设计模式) 下面利用java实现原型模式public class Person implements ...原创 2018-12-02 22:48:47 · 195 阅读 · 0 评论 -
设计模式学习-装饰模式
装饰模式动态的给一个对象添加一些额外的职责,来扩展对象的功能。装饰模式很容易就联想到了人的服饰,人是原有类,服饰是装饰类,人可以灵活的穿搭服饰。也就是装饰类可以包装在人类外面也可以包装在装饰类外面,在装饰类内部增加装饰(添加新方法)。直接来看结构图(程杰 大化设计模式截图) 直接从结构图上可以看到:Component :抽象组件角色 ,一个抽象接口,是被装饰类和装饰类的父接口。...原创 2018-11-29 23:29:27 · 192 阅读 · 0 评论 -
设计模式学习-策略模式
策略模式(Strategy模式)是行为模式之一,它对一系列的算法加以封装,为所有算法定义一个抽象的算法接口,并通过继承该抽象算法接口对所有的算法加以封装和实现,具体的算法选择交由客户端决定(策略)。Strategy模式主要用来平滑地处理算法的切换 。切换算法不会影响使用算法的客户。下面是在 程杰《大话设计模式》中截的图(书写的特别有意思),来描述策略模式的结构 Stra...原创 2018-11-22 23:30:22 · 249 阅读 · 0 评论 -
设计模式学习-简单工厂类
一直都对于设计模式一知半解。所以找了个视频好好的学习学习,做个学习笔记加深些记忆。简单工厂类真的是简单,不用费什么功夫,看到代码就懂了。主要就是通过工厂类产生实例化对象。对于这个类的实现首先要想到2点:1、工厂类产生实例,所以工厂类中必须要有 new 的逻辑。2、抽象实例的父类,一个工厂产生不同的实例对象,如果按照一个方法对应一个实例,那和直接new 对象有和区别,所以必须要给所有...原创 2018-11-19 22:01:05 · 277 阅读 · 0 评论