设计模式 GOF23 模式比较
设计模式 GOF23 提纲
设计模式 GOF23 创建型
设计模式 GOF23 结构型
设计模式 GOF23 行为型
简介
设计模式中很多模式及其相像,本文记录一些常见的,易混淆的设计模式,对他们的目的、作用进行比较,以便更好的理解设计模式。
适配器模式、代理模式
代码及其相似,都是将原本的类包装在新的一个类里面。
类结构:
- 适配器:
Adaptee
和Target
没有关系,接口方法也完全不同。 - 代理:
NetProxy
和OutNet
是继承或兄弟关系,接口方法一致。
场景:
- 适配器:一般发生在外来代码(各种第三方),要适应现有环境。
- 代理:自己开发的功能,需要进行增强。比如:AOP
目的
- 适配器:更多的是为了适配,为了转变,将原本不适用的接口、方法封装成适应现有框架的接口、方法。
- 代理:接口本身是适用的,但是需要增强,将现有框架的变成更强的。
// adaptee 为了能在体系中使用,只能在外面包一层 ObjectAdapter
// 原方法 adapteeRequest 被封装为 request
// 封装的目的是转换,而不是加强!
public class ObjectAdapter implements Target{public Adaptee adaptee;public ObjectAdapter(Adaptee adaptee) { this.adaptee = adaptee; }public void request(){System.out.println("ObjectAdapter request begin");adaptee.adapteeRequest();}
}// 代理的原因 更多是增加,而不是转换,原本的类也是能对接的。
public class NetProxy implements BaseNet{public OutNet outnet;@overridepublic void visit(){//通过真实对象,实现访问if (outnet==null){outnet = new OutNet();}outnet.visit();}
}
设计模式 GOF23 模式比较相关推荐
- Python设计模式-建造者模式
Python设计模式-建造者模式 代码基于3.5.2,代码如下; #coding:utf-8 #建造者模式 class Burger():name = ""price = 0.0d ...
- Python设计模式-状态模式
Python设计模式-状态模式 代码基于3.5.2,代码如下; #coding:utf-8 #状态模式class state():def writeProgram(self,work):raise N ...
- Python设计模式-备忘录模式
Python设计模式-备忘录模式 代码基于3.5.2,代码如下; #coding:utf-8 #备忘录模式 import randomclass gameCharacter():vitality = ...
- Python设计模式-解释器模式
Python设计模式-解释器模式 代码基于3.5.2,代码如下; #coding:utf-8 #解释器模式class PlayContext():play_text = Noneclass Expre ...
- Python设计模式-命令模式
Python设计模式-命令模式 代码基于3.5.2,代码如下; #coding:utf-8 #命令模式class barbecuer():def bakeButton(self):print(&quo ...
- Python设计模式-策略模式
Python设计模式-策略模式 代码基于3.5.2,代码如下; #coding:utf-8 #策略模式class sendInterface():def send(self,value):raise ...
- Python设计模式-外观模式
Python设计模式-外观模式 代码基于3.5.2,代码如下; #coding:utf-8 # 外观模式class AlarmSensor:def run(self):print("Alar ...
- Python设计模式-桥接模式
Python设计模式-桥接模式 基于Python3.5.2,代码如下 #coding:utf-8class Shape():name = ""param = "" ...
- Python设计模式-代理模式
Python设计模式-代理模式 基于Python3.5.2,代码如下 #coding:utf-8info_struct = dict() info_struct["addr"] = ...
- 说说设计模式~建造者模式(Builder)
建造者模式是我的"设计模式"里创建型模式里的最后一篇,这种模式在实现中,很多架构都用到了,如MVC,MVP,MVVM,它们都是有建造者模式的精髓的,即,创建与表现分享,我们的MVC ...
最新文章
- 如何将Vision Transformer应用在移动端?
- binlog工具_基于Binlog实时同步数仓,有哪些不为人知的坑?
- 如何使用idea REST Clinet 代替PostMan发送Http请求
- 微信小程序request请求动态获取数据
- 用于Elasticsearch数据可视化和分析的强大工具
- python 人数取整_在python中如何取整到10的最高倍数?
- Evaluation or Assessment
- 【Java】Java中ThreadLocal简介以及源码
- 操作系统——概念、功能、特征及发展分类
- 支付宝h5跳转小程序
- iTextSharp操作PDF
- Neo4j的开发方式
- 2021年12月全国程序员薪资出炉,你的排哪里……
- cubieboard笔记
- 如何优雅地管理微信数据库?
- 前端配色方案:最舒服的十种颜色
- 弄明白HASH,你就弄明白区块链的一大半
- 定时多次自动打开关闭网页的bat脚本
- 杭电acm 4540威威猫系列故事——打地鼠
- 单机网站服务器,端游【天之炼狱241】单机版一键端网单+GM工具