![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
整理学习设计模式读书笔记。
可耳(keer)
这个作者很懒,什么都没留下…
展开
-
设计模式10——状态模式
Head Frist 设计模式11-状态模式模式如果饿了就吃,困了就睡,渴了就喝,人生就太无趣了代码地址:https://github.com/keer123456789/MY_STUDY_LIFE/tree/master/src/main/java/study/Module/Module_State1.定义1.1概念状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改...原创 2020-03-09 17:12:18 · 190 阅读 · 0 评论 -
设计模式9——迭代器和组合模式
如果饿了就吃,困了就睡,渴了就喝,人生就太无趣了1.概念1.1 定义提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。1.2 类图如图1,接口Iterator是一个迭代器接口,所有迭代器需要实现的接口,一般使用java.util.Iterator接口,也可以自己构造接口。接口Aggregate为所有聚合所使用,提供一个返回迭代器的方法createIterator...原创 2020-02-26 14:31:38 · 242 阅读 · 0 评论 -
设计模式8——模板方法模式
如果饿了就吃,困了就睡,渴了就喝,人生就太无趣了1 定义1.1 概念在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在改变算法结构的情况下,重新定义算法中的某些步骤。1.2 类图如图1,抽象类AbstractClass中的templateMethod方法定义了算法框架,将算法分步骤实现,每一步的定义为抽象方法primitiveOperation1()和...原创 2020-02-19 18:15:18 · 166 阅读 · 0 评论 -
设计模式7——适配器模式
如果饿了就吃,困了就睡,渴了就喝,人生就太无趣了1 定义1.1 概念将一个类的接口,转换成客户期望的另一个接口,适配器让原本接口不兼容的类可以合作无间。适配器模式就如同它本身的名字一样形象,如图1:现有系统暴露的接口与厂商类的接口不匹配,二者不能结合使用。现在需要一个适配器来将两个系统结合起来。如图2:1.2 类图适配器模式分为两种:对象适配器和类适配器。对象适配器:让...原创 2020-02-16 21:39:37 · 494 阅读 · 0 评论 -
设计模式6——命令模式
如果饿了就吃,困了就睡,渴了就喝,人生就太无趣了1 命令模式1.1 概念概念:将“请求”封装成对象,以便使用不同的请求、队列或日志来参数化其他对象。命令模式也支持撤销操作。通过下面的引例来具体理解一下命令模式吧!!1.2 引例来分析一下顾客去餐厅点餐的例子。如图1:顾客在订单上写下汉堡一个,薯条一包。调用createOrder()下单点餐。服务员使用takeOrder()方...原创 2020-02-15 21:03:58 · 362 阅读 · 0 评论 -
设计模式5——单例模式
如果饿了就吃,困了就睡,渴了就喝,人生就太无趣了1.定义1.1 概念确保一个类只有一个实例,并提供一个全局访问点。简单来说:将构造器私有化,并在静态方法中初始化该类的静态变量。1.2 类图如图1,定义一个该类的私有静态变量uniqueInstance,并将构造器定义为private(在图中没有显示),通过静态方法getInstance()为uniqueInstance初始化并返回该...原创 2020-02-10 17:23:19 · 210 阅读 · 0 评论 -
设计模式4——工厂模式
如果饿了就吃,困了就睡,渴了就喝,人生就太无趣了1.简单工厂模式简单工厂模式并不是一个设计模式,反而是一种编程习惯。简单工厂模式就是将某种类的初始化全部交给工厂来执行,外部用户不用考虑内部的实现,只需要告诉工厂想要什么样就可以,工厂根据用户提供的信息,返回一个相应类的实例。如图1,一个实现简单工厂模式的pizza店。(1)Pizza是一个接口,有四种不同的pizza实现接口。(2)...原创 2020-02-09 21:21:36 · 621 阅读 · 2 评论 -
设计模式1——策略模式
1.1定义定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户1.2引例(模拟鸭子应用)需求: 系统中会出现很多鸭子,一边游泳,一边呱呱叫1.2.1 通过超类和继承设计其他不同的鸭子也像图中的两种鸭子一样,继承Duck超类。每个鸭子子类负责实现自己的display()方法。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传...原创 2020-02-01 15:40:34 · 181 阅读 · 0 评论 -
设计模式2——观察者模式
1 模式说明观察者模式就像报纸出版商和订阅者一样,在观察者模式中出版者叫做“主题”(subject),订阅者叫做“观察者”(observer)。主题内的数据产生变化时,就会通知已经订阅该主题的观察者,观察者如果订阅了主题,一旦主题发生变化发来通知,观察者就会做出相应的调整。观察者的数量可以是很多,换句话说就是很多人可以同时订阅一个主题。主题和观察者是1对多的关系。说明(1)如图1,一共有5个...原创 2020-02-02 10:26:10 · 130 阅读 · 0 评论 -
设计模式3——装饰者模式
定义:动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更加弹性的解决方案。1 引例_咖啡订单系统1.1 最初设计。如图1,首先创建一个Bevarage(饮料)的抽象类,店内所有的咖啡都继承这个类。description是成员变量,由子类设置,描述咖啡使用。getDescription()就是返回这个描述。cost()方法是抽象方法,由子类实现,计算价格使用。最开始咖啡就有如...原创 2020-02-02 17:17:02 · 121 阅读 · 0 评论