![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式(java)
风絮_
愿你在山顶时有清风拂面,愿你在谷底时依然不孤不寒。
展开
-
详细说说单例模式
单例模式特点:全局唯一,在整个程序中,只有一个对象。什么样的类适合单例?全局使用的类创建和销毁会消耗很多系统资源的类数据库连接池工厂类数据源应用:Spring的Bean默认情况下是单例项目中,读取配置文件的类,一般也只有一个对象。没有必要每次使用配置文件数据,每次new一个对象去读取。应用程序的日志应用,一般都何用单例模式实现,这一般是由于共享的日志文件一直处于打开状态,因为只能有一个实例去操作,否则内容不好追加。数据库连接池的设计一般也是采用单例模式,因为数据库连接是一原创 2020-06-03 16:02:15 · 221 阅读 · 0 评论 -
装饰者模式
简介从简介不难看出,装饰器模式主要的作用在于扩充原来类的功能。就好像HTML可以用来展示数据,CSS可以在展示数据的基础上,对数据进行美化。一般我们想要扩充一个类的功能,可以使用继承的方式,也可以使用装饰器模式。下面我们分别使用两种方式来模拟HTML和CSS的关系。代码示例需求新建一个接口,表示展示文字的功能public interface IDisplayText { void displayText();}新建一个Span类,实现该接口,用来展示以一段文字public cl原创 2020-05-12 22:41:38 · 148 阅读 · 0 评论 -
从某盘限速来看策略模式
简介摘自百度百科“对象有某种行为,但是在不同场景中,该行为有不同的实现”,这不禁使我想起了某盘的Vip用户和普通用户下载速度的差别,今天我们就来借用某盘的例子说一说策略模式。代码实例首先,我们将用户分为三种:普通用户(Comm)、会员(Vip)、超级会员(SVip)。他们都可以下载文件,即都有下载方法(download)于是我们新建一个接口,表示下载功能public interf...原创 2020-05-06 20:45:17 · 183 阅读 · 0 评论 -
适配器模式(java实现)
简介参考资料:https://www.bilibili.com/video/av57936239?p=60适配器模式(Adapter Pattern)将某个接口转换成客户端希望的另一个接口表示,主要目的是兼容性,让原本因接口不匹配而不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)适配器模式属于结构型模式主要分为三类:类适配器模式、对象适配器模式、接口适配器模式工作原...原创 2020-03-10 12:31:25 · 3219 阅读 · 0 评论 -
原型模式(java实现)
原型模式介绍原型模式用于创建重复的对象,同时又能保证性能。java实现实现原型模式需要两步:实现Cloneable接口重写clone方法例如我们定义一个Video类import lombok.*;import java.time.*;@Data@AllArgsConstructorpublic class Video implements Cloneable{ ...原创 2020-02-08 20:03:45 · 580 阅读 · 0 评论 -
代理模式(Proxy)
代理模式基本介绍代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象。这样做的好处是:可以在目标对象实现的基础上,增强额外的操作,即扩展目标对象的功能。被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象。代理模式主要有三种不同形式:静态代理动态代理(JDK代理、接口代理)Cglib代理(可以在内存动态创建对象,而不需要实现接口,属于动态代...原创 2019-12-06 21:19:58 · 950 阅读 · 0 评论 -
观察者模式学习笔记(java版)
场景引入如图,为广播机制,只需要一个人讲话,所有的收音机都能接收到。把播音员看做目标对象,收音机看成观察者,目标对象的状态改变的时候,观察者可以得知目标对象的状态并作出反应。核心观察者模式主要用于:1、当一个对象(目标对象)的状态变化时,他需要及时告知一系列对象(观察者者对象),令他们做出响应。通知观察者的方式:推:每次都会把通知以广播的方式发送给所有观察者,所有观察者只能被动接...原创 2019-04-09 20:20:41 · 233 阅读 · 0 评论 -
工厂模式学习笔记(java版)
作用:实现了创建者和调用者的分离。分类:简单工厂模式工厂方法模式抽象工厂模式面向对象设计原则:开闭原则(OCP,Open-Closed Principle):一个软件的实体应当对扩展开放,对修改关闭。依赖倒转原则(DIP,Dependence Inversion Principle):要针对接口编程,不要针对实现编程。迪米特法则(LoD,Law of Demeter):只与...原创 2019-04-09 20:23:07 · 245 阅读 · 0 评论 -
GOF设计模式入门&&单例模式笔记(java版)
设计模式主要分三类:创建者模式顾名思义,创建者模式帮助我们创建对象。包括:单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式。结构型模式适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。行为型模式模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。单例模式核心作用保证一个类只...原创 2019-04-08 15:04:08 · 123 阅读 · 0 评论 -
迭代器模式学习笔记(java版)
场景提供一种可以遍历聚合对象的方式。又称为:游标cursor模式聚合对象:存储数据迭代器:遍历数据JDK内置的迭代器(List/Set)package com.qianyu.gof.iterator;import java.util.ArrayList;import java.util.Iterator;/** * @author lijing * @date 2019...原创 2019-04-10 19:43:54 · 1521 阅读 · 1 评论