![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 90
青春路上的小蜜蜂
世界上最美妙的声音--键盘的敲击声!
展开
-
设计模式——迭代器模式
简述迭代器模式:提供一种方法顺序地访问或遍历一个对象中的各个元素,而又不用暴露该对象的内部表示。迭代器模式又称游标模式,它是一种对象行为型模式。通过引入迭代器可以将数据的遍历功能从聚合对象中分离出来,聚合对象只负责存储数据,而遍历数据由迭代器完成,符合单一职责原则。角色(1)Iterator(抽象迭代器):它定义了访问和遍历元素的接口,声明了用于遍历元素的方法。(2)Concret...原创 2020-04-24 09:40:12 · 340 阅读 · 0 评论 -
设计模式——责任链模式
简述责任链模式属于设计模式中的行为型设计模式。如果存在多个对象可以处理同一请求,则可以通过责任链模式将这些处理请求的处理者连成一条链,让请求沿着该链进行传递。如果链上的处理者可以处理该请求那么就进行处理,否则将请求转发给下家来处理。责任链模式可以将请求的发送者和接收者解耦,客户端无须关心请求的处理细节和传递过程,只需要将请求提交给这个处理请求链即可。责任链可以是一条直线、一个环或者一个树形...原创 2020-04-22 10:28:34 · 194 阅读 · 0 评论 -
Java设计模式——代理模式
定义给某一个对象提供一个代理或占位符,并由代理对象来控制原对象的访问。角色(1)Subject(抽象主题角色)(2)Proxy(代理主题角色)(3)RealSubject(真实主题角色)分类(1)根据适用范围,代理模式可以分为:远程代理、虚拟代理、保护代理、智能引用等。远程代理:为一个对象在不同的地址空间提供局部代表,这样系统可以将Server部分的事项隐藏。虚...原创 2020-04-21 10:03:39 · 156 阅读 · 0 评论 -
设计模式——策略模式
概述策略模式定义了一系列的算法,把每个算法封装起来,它们之间可以相互替换。相当于给客户端提供了一系列的策略,让客户端根据不同的场景,调用不同的策略。避免了使用多重条件选择语句,解耦,增加一个策略,只需要增加一个策略类即可,不需要修改原有的代码,符合设计模式中的开放封闭原则(对扩展开放,对修改封闭)。策略模式属于行为型设计模式。策略模式的实现我们以回家的交通方式为例,简单介绍下策略模式的实现,...原创 2020-03-23 15:18:17 · 135 阅读 · 0 评论 -
设计模式——抽象工厂模式
前言抽象工厂模式和工厂模式都属于创建型模式。不同的是:工厂方法模式,每个工厂只生产一种类型的产品。而抽象工厂模式能够生产多种类型的产品。下面以工厂生产电脑为例来说一下抽象工厂模式的实现:抽象工厂模式的实现(1)创建抽象产品类public abstract class CPU { public abstract void showCPU();}public ab...原创 2020-03-10 11:55:43 · 117 阅读 · 0 评论 -
设计模式——工厂模式
前言工厂模式属于创建型模式中的一种。主要用来创建复杂的对象,简单对象能够使用new来创建就不用工厂方法模式来创建了。工厂模式的实现(1)创建抽象的产品类public abstract class Fruit { public abstract void getProduct();}(2)创建具体产品类public class Apple extends Fru...原创 2020-03-10 11:22:17 · 103 阅读 · 1 评论 -
设计模式——原型模式
前言原型模式属于创建型模式。一个已存在的对象(即原型),通过复制原型的方式来创建一个内部属性跟原型都一样的新的对象,这就是原型模式。原型模式是通过clone方法来实现对对象的拷贝。拷贝的前提是被Clone的对象所对应的类要实现Cloneable接口。原型模式的实现...原创 2020-03-10 10:52:41 · 112 阅读 · 0 评论 -
设计模式——建造者模式
前言建造者模式属于设计模式中的创建型的设计模式。建造者模式主要用来创建复杂的对象,而不用关心创建对象的过程和细节。建造者模式的实现下面以组装电脑为例,来看看建造者模式的实现:(1)具体的产品类:包含了一个产品的一些属性public class Computer { private String mCpu; private String mMemory; ...原创 2020-03-09 17:07:46 · 131 阅读 · 0 评论 -
观察者模式
前言观察者模式属于行为型模式,又被称作发布/订阅模式。主要用来解耦,将观察者和被观察者解耦。主要涉及四个角色:抽象观察者、具体观察者、抽象被观察者、具体被观察者。代码实现(1)创建抽象观察者:/** * 抽象观察者 */public interface Observer { void update(String message);}(2)创建具体观察者:...原创 2020-02-27 12:39:18 · 85 阅读 · 0 评论 -
设计模式的分类以及设计原则
前言最近重温的Java的23种设计模式,在这里先简单回顾一下设计模式的分类以及设计原则一、设计模式的设计原则(1)单一职责原则一个类只有一个引起它变化的原因,每个类应该职责单一,不同的职责应该分到不同的类中,不能让一个类肩负太多的职责。这样是为了避免耦合度过高。优点:解耦、提高类的可读性、避免一个类中一个职责的变化影响到其他职责(2)开放封闭原则一个实体(类、函数...原创 2020-02-27 10:51:26 · 296 阅读 · 0 评论