博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
不同设计模式的区别
阅读量:6256 次
发布时间:2019-06-22

本文共 1139 字,大约阅读时间需要 3 分钟。

【简单工厂、工厂方法、抽象工厂、Builder模式的区别】

No1:

核心定义:

1)简单工厂模式:一个工厂方法创建不同类型的对象

2)工厂方法模式:一个具体的工厂类负责创建一个具体对象类型

3)抽象工厂模式:一个具体的工厂类负责创建一系列相关的对象

4)Builder模式:对象的构建与表示分离,它更注重对象的创建过程

No2:

工厂方法模式与简单工厂的区别主要有两点:

1)工厂方法需要定义抽象工厂类或者接口

2)具体的对象由具体的工厂类来创建,并且每个工厂只创建一类对象

No3:

抽象工厂和工厂方法的区别:

抽象工厂实际上就是工厂方法的升级版,它的一个工厂类能够生产多个不同类型的、相关联或者相互依赖的对象

No4:

抽象工厂与简单工厂的区别:

简单工厂通过一个静态函数创建不同类型的对象,而抽象工厂通过工厂子类的多个函数创建多个不同类型的对象

No5:

三个工厂模式和Builder模式的区别:

几个工厂模式侧重的是对象的创建,而Builder模式则是侧重对象的构建过程,通过Director与Builder的协作将对象的各个部分组装起来

【代理与装饰模式、桥接模式】

No6:

代理模式:为其他对象提供一种代理以控制对这个对象的访问

装饰模式:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活

桥接模式:将抽象和实现解耦,使得两者可以独立地变化

No7:

装饰模式与代理模式的共同点都是增强功能,但是代理的特点是添加逻辑控制,而装饰则是动态地添加功能。

【外观模式与中介模式】

No8:

外观模式:要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。外观模式提供一个高层次的接口,使得子系统更易于使用

中介模式:用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互

【策略与状态模式、命令模式】

No9:

策略模式:定义一组算法,将每个算法都封装起来,并且使它们之间可以互换

状态模式:当一个对象内在状态改变时允许其改变行为,这个对象看起来像改变了其类

命令模式:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能

No10:

命令模式在行为上与策略模式优点类似,策略模式关注的是算法替换的问题,用一个新的算法替换旧算法,或者提供多种算法由调用者选择,算法的自由更替是它实现的重点。而命令模式则关注的是解耦问题,如何让请求者和执行者解耦是它需要首先解决的,解耦的要求就是把请求的内容封装成一个一个的命令,由接收者执行,由于封装成了命令,就同时可以对命令进行多种处理,例如撤销、记录等。

转载地址:http://suxsa.baihongyu.com/

你可能感兴趣的文章
干货型up主
查看>>
获取页面中所有dropdownlist类型控件
查看>>
读《淘宝数据魔方技术架构解析》有感
查看>>
[转载]如何破解Excel VBA密码
查看>>
【BZOJ】2563: 阿狸和桃子的游戏
查看>>
redis 中文字符显示
查看>>
国内外MD5在线解密网站
查看>>
【OC语法要闻速览】一、方法调用
查看>>
Git-命令行-删除本地和远程分支
查看>>
本文将介绍“数据计算”环节中常用的三种分布式计算组件——Hadoop、Storm以及Spark。...
查看>>
顺序图【6】--☆☆
查看>>
Docker Swarm 让你事半功倍
查看>>
string.Format字符串格式说明
查看>>
[转]IC行业的牛人
查看>>
javaScript事件(四)event的公共成员(属性和方法)
查看>>
linux系统常用命令
查看>>
在 Word 中的受支持的区域设置标识符的列表
查看>>
Caffe + Ubuntu 14.04 64bit + CUDA 6.5 配置说明2
查看>>
An easy to use android color picker library
查看>>
Oracle SID爆破工具SidGuess
查看>>