设计模式-行为型-迭代器模式
迭代器模式(Iterator):
迭代器模式允许你访问一个数据项序列中的所有元素,而无须关心序列是什么类型(数组、链表、列表或任何其他类型)。它能有效地构建一个数据管道,经过一系列不同的转换或过滤后再从管道的另一端出来。迭代器模式就是提供一种遍历集合元素的统一接口,用一致的方法遍...[2019/10/8]
Refresh design pattern
多年后, 再次翻阅设计模式书籍, 将每种模式的要点总结于此, 需要本身有一定设计模式基础, 再结合要点, 帮助更好理解与运用.
策略模式 (Strategy)
附加功能单独抽象不同接口
功能以组合方式引入抽象类
抽象类封装功能模块各调用
实现类可在构造中配置功能具体实现
观察者模...[2019/10/8]
设计模式-行为型-模板模式设计模式-行为型-模板模式
模板模式(Template):
提到模板,可能大多数人想到的是"简历模板"、"论文模板"等,比如我们要写简历时,会从网上下载一份漂亮的简历模板,其格式是固定的,我们根据自己的情况填充不同的内容。模板模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改...[2019/10/8]
命令模式
命令模式关注动作本身,通过将动作封装成对象实现调用者和底层实现相分离。调用者只需要简单的下达命令,然后等待命令完成即可,对底层发生了什么完全不知情。关于命令模式一个很直观的例子就是点餐:当我们点餐时,我们只用关心将选好的菜品下单,然后等待送餐即可,我们不关心饭菜是怎么做的,不关心厨师是男...[2019/10/8]
设计模式-行为型-策略模式
策略模式(Strategy):
策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们可以...[2019/10/8]
创建型设计模式(上)
单例模式:
1、定义:单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类
2、实现过程要点:
(1)单例类的构造函数为私有
(2)提供一个自身的静态私有成员变量
(3)提供一个公有的静态工厂...[2019/10/8]
设计模式-行为型-命令模式
命令模式(Command):
将请求封装成对象,以便使用不同的请求、日志、队列等来参数化其他对象。命令模式也支持撤销操作。
命令模式的角色:
1)传递命令对象(Invoker):是请求的发送者,它通常拥有很多的命令对象,并通过访问命令对象来执行相关请求,它不...[2019/10/8]
设计模式-行为型-职责链模式
职责链模式(Chain of Responsibility):
在现实生活中,常常会出现这样的事例:一个请求需要多个对象处理,但每个对象的处理条件或权限不同。如公司员工报销差旅费,可审批的领导有部分负责人、副总经理、总经理等,但每个领导能审批的金额是不同的,不同的金额需要找相应的...[2019/10/8]
结构型设计模式(上)
适配器模式:
类适配器:
对象适配器:
1、定义:将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作
2、模型结构:
(1)目标抽象类(Target):客户所期待得到的接口
(2)适配器类(A...[2019/10/8]
结构型设计模式(下)
装饰模式:
1、定义:动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活
2、模型结构:
(1)抽象构件(Component):定义一个抽象接口以规范准备接收附加责任的对象
(2)具体构件(Concrete...[2019/10/8]
设计模式-行为型-状态模式
状态模式(State):
在软件开发过程中,应用程序可能会根据不同的情况作出不同的处理。最直接的解决方案是将这些所有可能发生的情况全都考虑到,然后使用if else语句来做状态判断来进行不同情况的处理。但对复杂状态的判断就显得"力不从心了",随着增加新的状态或者修改一个状体if ...[2019/10/8]
行为型设计模式(上)
责任链模式:
下图为责任链
1、定义:为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象
记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象...[2019/10/8]
设计模式-行为型-观察者模式设计模式-行为型-观察者模式
观察者模式(Observer):
指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
观察者模式的角色:
1)抽象目标(Subject):也叫抽象目标类,它提供了一个用于保存观察者对象的聚集类...[2019/10/8]
迭代器模式
迭代器模式提供了一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部实现。
有过Java编程经验的人对这种模式应该比较熟悉,因为Java内置的许多集合类型:List、Set、Map等都...[2019/10/8]
行为型设计模式(中)
中介者模式:
1、定义:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,
从而使其耦合松散,而且可以独立地改变它们之间的交互
2、模型结构:
(1)抽象中介者(Mediator)...[2019/10/8]
设计模式 - 单例模式(详解)看看和你理解的是否一样?
一、概述
单例模式是设计模式中相对简单且非常常见的一种设计模式,但是同时也是非常经典的高频面试题,相信还是有很多人在面试时会挂在这里。本篇文章主要针对单例模式做一个回顾,记录单例模式的应用场景、常见写法、针对线程安全进行调试(看得见的线程)以及总结。相信大家看完这篇文章之后,对单例模式有...[2019/10/8]
JAVA设计模式---单例模式篇
单例模式(singleton):是JAVA中最简单的一种设计模式,属于创建型模式。所谓单例,就是整个程序有且仅有一个实例。
特点:
构造方法私有化
在本类中实例化一个对象作为本类的属性
对外提供一个访问本类对象的方法
饿汉式:类加载时就加载对象
应用场...[2019/9/30]
设计模式 - 导读
发布说明
其实不用设计模式并非不可以,但是用好设计模式能帮助我们更好地解决实际问题。
设计模式天天都在用,但自己却无感知。
本系列文章,初衷是为了记录日常经常使用的设计模式,也给学习设计模式的同学们提供参考和查阅。
文章内容有自己的理解,也有参考网络,如有侵犯,请告知删除。
学习设...[2019/9/30]
设计模式 - 工厂模式设计模式 - 工厂模式
概述
我们都知道Java中共有 23 种设计模式,其中工厂模式分为三种,即:简单工厂模式(不在 23 种设计模式之列)、工厂方法模式和抽象工厂模式;我们平时说的工厂模式,其实大都指工厂方法模式,这种模式是我们平时编码中用的频率最高的一种,在Spring源码中就有很多工厂模式的应用,比如...[2019/9/30]
设计模式-结构型-外观模式设计模式-结构型-外观模式
外观模式(Facade):
外部通过一个统一的接口,访问子系统中的一群接口。外观模式定义了一个高层接口,为子系统中的一组接口提供一个一致的入口,使得子系统更容易使用。外观模式相对比较简单,可以理解为中介,原先租房需要自己一个个筛选,联系房东,谈好价格,签合同等等,现在不需要这些了...[2019/9/29]
JAVA设计模式---总述篇
一、设计模式(Design Pattern):
1.设计模式的概念
是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。使用设计模式是为了可重用代码、让代码更容易被他人理...[2019/9/29]
设计模式一:简单工厂模式设计模式一:简单工厂模式
简单工厂模式
概念
简单工厂模式属于创建型模式,又叫做静态工厂方法(Static Factory Method)。简单工厂模式是由一个工厂对象决定创建哪一种产品类实例。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常...[2019/9/29]
设计模式-结构型-享元模式
享元模式(Flyweight):
定义:
运用共享技术有效地支持大量细粒度对象的复用。享元模式可以避免大量相似类的开销,在软件开发中如果需要生成大量细粒度的类实例,而这些类实例除了几个参数外基本上相同,那么这时就可以使用享元模式大幅度减少实例化类的数量。如果能把这些参数移动到...[2019/9/29]
装饰者模式
装饰者模式能够动态地将责任附加到对象上,在扩展对象功能方面比继承更加灵活,具体来说,装饰者模式将行为委托给相应的包装对象,并添加上自己的对应逻辑来实现特定的功能。装饰者模式的UML图如下:
&nb...[2019/9/29]
设计模式-结构型-组合模式
组合模式(Composite):
定义:
组合模式又叫部分整体模式,它是一种将对象组合成树状的层次结构模式,用来表示"部分-整体"的关系,使用户对单个对象和组合对象具有一致的访问性。
组合模式的角色:
1)抽象构建(Component):它的主要作用是为树叶构件和...[2019/9/29]
设计模式 - 七大设计原则(四)- 合成复用原则与设计原则总结设计模式 - 七大设计原则(四)- 合成复用原则与设计原则总结
概述
简单介绍一下七大设计原则:
开闭原则:是所有面向对象设计的核心,对扩展开放,对修改关闭
依赖倒置原则:针对接口编程,依赖于抽象而不依赖于具体
单一职责原则:一个接口只负责一件事情,只能有一个原因导致类变化
接口隔离原则:使用多个专门的接口,而不是使用一个总接口
迪米特法则(最...[2019/9/27]
通俗易懂设计模式解析——命令模式
前言
今天我们一起来看行为型设计模式中的命令模式、何为命令模式呢?先谈命令——我现在需要对某一条信息进行删除,我进行点击删除按钮。后台执行删除的命令、对信息进行删除。那么我们要讲的命令模式又是什么呢?命令模式就是把一个操作或者行为抽象为一个对象。然后通过对命...[2019/9/27]
设计模式模式(四):建造者模式(生成器模式)设计模式模式(四):建造者模式(生成器模式)
建造者模式主要解决问题:
具备若干成员,当其中一个成员发生变化,其它成员也随着发生变化。
这种复杂对象的生成需要使用建造者模式来生成。
建造者设计模式的结构图:
来源:http: c.biancheng.net/view/1354.html
&nbs...[2019/9/26]
设计模式 - 七大设计原则(一)
设计模式 - 七大设计原则(一)
概述
简单介绍一下七大设计原则:
开闭原则:是所有面向对象设计的核心,对扩展开放,对修改关闭
依赖倒置原则:针对接口编程,依赖于抽象而不依赖于具体
单一职责原则:一个接口只负责一件事情,只能有一个原因导致类变化
接口隔离原则:使用多个专门的接口,而不是...[2019/9/26]
设计模式 - 七大设计原则(二)
概述
简单介绍一下七大设计原则: 开闭原则:是所有面向对象设计的核心,对扩展开放,对修改关闭 依赖倒置原则:针对接口编程,依赖于抽象而不依赖于具体 单一职责原则:一个接口只负责一件事情,只能有一个原因导致类变化 接口隔离原则:使用多个专门的接口,而不是使用一个总接口 迪米特法...[2019/9/26]
设计模式-结构型-装饰者模式
装饰者模式(wrapper):
允许向一个现有的对象添加新的功能,同时又不改变其结构。装饰器模式是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。
示例:英雄学习技能
...[2019/9/25]
Python 单例设计模式用法实例分析Python 单例设计模式用法实例分析
本文实例讲述了Python 单例设计模式用法。分享给大家供大家参考,具体如下:
demo.py(单例):
cla MusicPlayer(object):
# 类属性 记录对象引用
instance = None
def __new__(cls, *args, ...[2019/9/24]
设计模式-结构型-桥接模式
桥接模式(Bridge):
桥接是用于把抽象化与实现化解耦,使得两者可以独立变化。
桥接模式的角色:
1)抽象化角色(Abstraction):它是用于定义抽象接口,通常是抽象类而不是接口,其中定义了一个Implementor(实现接口)类型的对...[2019/9/23]
设计模式-结构型-代理模式
代理模式(Proxy):
代理模式就是给某一个对象提供一个代理,并由代理对象控制对原有对象的引用。在一些情况下,一个客户不想或者不能直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。例如windows桌面端的快捷方式就是一个代理。
代理模式按照使用目的可以...[2019/9/23]
观察者模式
观察者模式允许多个观察者订阅一个主题,当主题的状态发生变化时,能够将这种变化通知到每个观察者。从主题的角度看,这是典型的一对多关系,即一个主题可以对应多个观察者。以订阅邮件为例,当订阅某一类主题内容(例如娱乐新闻,动漫等)时,如果该主题...[2019/9/23]
SSH框架之Spring第四篇
1.1 JdbcTemplate概述 :
它是spring框架中提供的一个对象,是对原始JdbcAPI对象的简单封装.spring框架为我们提供了很多的操作模板类.
ORM持久化技术 模板类
...[2019/9/23]
设计模式设计模式
没有什么设计模式是完美无缺的,一个设计模式就是解决一类的问题,通常设计模式在解决一类问题的同时,还会带来别的问题,我们设计者要做的事,就是扬长避短。
1、创建型设计模式,5个===》关注对象的创建
2、结构型设计模式,7个===》关注类与类之间的关系
3、行为设计模式,1...[2019/9/20]
设计模式之单例模式
单例模式的好处:
单例模式的好处就是单例,就是去阿奴唯一的一个实例,应对一些特殊情况,比如数据库连接池(内置了资源)全局唯一奥玛生成器,单例可以避免重复创建,但是也会常驻内存,除非真的有必要,否则不要用单例模式。
单例模式:
1、够高函数私有化,避免别人还去new
...[2019/9/20]
设计模式-原型模式
单例的基础上升级了一下,把对象从内存层面复制了一下,然后返回。是个新对象,但是又不是new出来的。
<summary>
原型模式:单例的基础上升级了一下,把对象从内存层面复制了一下,然后返回
是个新对象,但是又不是new出来的
< u...[2019/9/20]
设计模式-抽象工厂设计模式-抽象工厂
抽象工厂:创建对象,创建一组密不可分的对象
创建产品簇,多个对象是个整体,不可分割
工厂+约束
倾斜的可扩展性设计,增加产品很麻烦
<summary>
一个工厂负责一些产品的创建
产品簇
单一职责就是创建完整的产品簇
继...[2019/9/20]
设计模式-适配器模式设计模式-适配器模式
适配器模式:解决重构的问题,新东西和旧系统不吻合,通过组合/继承进行配
适配器:插座,电源适配器,做个转接的
程序员已经确定好规范IHelper,新增了一个RedisHelper----第三方,二者规范不一致,就是没实现接口
<summary>
...[2019/9/20]
设计模式-代理模式设计模式-代理模式
通过代理完成对业务类的访问,包一层方便人以功能扩展。
代理模式:VPN代理,翻墙代理,火车票代理等。
通过代理业务类去完成对真实业务类的调用,代理类不能扩展业务功能,在不修改RealSubject前提下,插入功能。
包一层:没有什么技术问题是包一层解决不了的,如果有,那么就再...[2019/9/20]
设计模式-观察者设计模式
一个对象的动作触发多个对象的行为,通过观察者可以去掉对象的依赖,支持各种自定义和扩展。
观察者模式,还要从那只申请的猫开始说起。
猫叫一声之后触发:
Baby Cry()、Brother Trun()、Dog Wang()、Father Roar()、Mothor Whi...[2019/9/20]
面向切面编程AOP
最开始接触AOP这个概念,是在大学Java课程中(具体哪本忘记了,JavaWeb?)接触到的。当时的理解就是,一个请求过来,自上而下,突然从中间切一刀。从那个图是这样理解的,文字描述的都忘记了。关于AOP的博客有好多,在工作中需要用到,我也是看着博客,外加视频学习来理解的。
http...[2019/9/20]
单例模式 - spring-effort
1.单例模式:
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象创建。这个类提供一种访问方式访问其唯一的对象的方式,
可以直接访问,不需要实例化该类对象。
2.特点:
1.单例类只能有一个实例。
2.单例类必须...[2019/9/20]
从零开始入门 K8s| 详解 Pod 及容器设计模式
作者|张磊 阿里云容器平台高级技术专家,CNCF 官方大使
一、为什么需要 Pod
容器的基本概念
我们知道 Pod 是 Kubernetes 项目里面一个非常重要的概念,也是非常重要的一个原子调度单位,但是为什么我们会需要这样一个概念呢?在使用容器 Docker 的时候,也没有这个说...[2019/9/20]
设计模式-结构型-适配器模式
适配器模式(Adapter Pattern):
将某个类的接口转换成客户端期望的另一个接口表示,主要的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。如读卡器是作为内存卡和笔记本之间的适配器,需要将内存卡插入读卡器,再将读卡器插入笔记本,这样笔记本就可以读取内存...[2019/9/19]
模板方法模式
模板方法模式
在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。
优点:
封装不变部分,扩展可变部分。
提取公共代码,便于维护。
行为由...[2019/9/19]
C#中增量类功能的方式之 继承与扩展
之前一次公司培训的时候,将它记录下来,https: www.cnblogs.com/AlvinLee/p/10180536.html这个博客上面比较全面。
1、扩展方法
扩展方法时一种特殊的静态方法,可以像该类的实例方法一样使用,能够在不添加新的派生类,重新编译的秦光霞,向现...[2019/9/19]
设计模式六大原则
设计模式六大原则:
1、单一职责原则(Single Responsibility Principle)
2、历史替换原则(Liskov Substitution Principle)
3、依赖倒置原则(Dependence Inversion Principle)...[2019/9/19]