网站首页 > 博客文章 正文
设计模式
【欢迎关注、点赞、评论、收藏和转发,您的肯定是我创作的最大动力!】
热烈欢迎关注【IT导航】学习编程从我做起。
设计模式源码地址:https://github.com/eraare/DesignPatterns
前言:
本系列文章共23篇,详细介绍GOF (Gang Of Four)所定义的23种设计模式。共分为三大类对应标题中的3大招,每类中的每一种设计模式对应3大招中的某一式:
第1招-创建型(共5式):单例模式,工厂方法模式,抽象工厂模式,建造者模式,原型模式;
第2招-行为型(共11式):观察者模式,策略模式,命令模式,状态模式,解释器模式,迭代器模式,中介者模式,访问者模式,备忘录模式,责任链模式,模板方法模式;
第3招-结构型(共7式):适配器模式,外观模式,代理模式,装饰者模式,组合模式,桥接模式,享元模式。
计算机系统硬件部分:运算器、控制器、存储器、输入设备、输出设备。
内容摘要:
定义
应用场景
Java代码实例
优缺点
小结
一、定义
还记得小学时学习的四则运算么?加减乘除。计算机程序一个最基本的功能就是进行数值计算。变量、运算符、表达式,可是你知道程序内部是怎么进行运算的么?怎么使用面向对象的方法实现一个解释器来解释表达式呢?请看解释器模式。
解释器模式:给定一种语言,定义其文法的一种表示,同时定义一个解释器,解释器使用此文法解释语言中的句子。
UML图
二、应用场景
需要解释执行一条语句时;
运算符表达式的解释执行;
解释器语言的解释器;
三、Java代码实例
来个解释Hello world.的解释器:
1. 定义解释器表达式接口;
2. 定义终结符表达式类;
3. 定义非终结符表达式类And和Or;
4. 客户端给定文法并使用解释器解释句子;
四、优缺点
优点:
易于维护。修改语法规则仅需修改相应的非终结符表达式;
易于扩展。添加语法只要增加非终结符类就可以了。
缺点:
每个语法都要对应一个非终结符表达示;
效率较低。由于其使用的大量的递归和循环,导致效率低下。
五、小结
解释器模式就是对表达示的解释执行,特定情况下才会使用。且容易导致效率低下、逻辑混乱(语法结构比较复杂时)等问题。所以一般不推荐使用此模式,学习此模式主要是为了理解大型框架,一般大型框架里会使用此模式做一些语法解析。
脑筋急转弯:小明知道试卷的答案,为什么还频频看同学的?
猜你喜欢
- 2024-10-01 设计模式——备忘录模式(备忘录界面设计)
- 2024-10-01 设计模式 之 行为型模式(行为型设计模式特点)
- 2024-10-01 Go语言设计模式-访问者(go语言有设计模式吗)
- 2024-10-01 Spring Boot 实战:运用访问者模式灵活扩展订单处理逻辑
- 2024-10-01 visitor pattern 访问者模式(访问者模式工作原理)
- 2024-10-01 Aha!设计模式(105)-访问者模式(1)
- 2024-10-01 GOF设计模式(命令模式,访问者模式,迭代器模式,观察者模式)
- 2024-10-01 设计模式第2招第1式之观察者模式(观察者设计模式的优点)
- 2024-10-01 「编程设计」访问者(Visitor)模式-补丁式为原体系增加新功能
- 2024-10-01 访问者模式的结构(访问者模式的结构是)
你 发表评论:
欢迎- 07-07Xiaomi Enters SUV Market with YU7 Launch, Targeting Tesla with Bold Pricing and High-Tech Features
- 07-07Black Sesame Maps Expansion Into Robotics With New Edge AI Strategy
- 07-07Wuhan's 'Black Tech' Powers China's Cross-Border Push with Niche Electronics and Scientific Firepower
- 07-07Maven 干货 全篇共:28232 字。预计阅读时间:110 分钟。建议收藏!
- 07-07IT运维必会的30个工具(it运维工具软件)
- 07-07开源项目有你需要的吗?(开源项目什么意思)
- 07-07自动化测试早就跑起来了,为什么测试管理还像在走路?
- 07-07Cursor 最强竞争对手来了,专治复杂大项目,免费一个月
- 最近发表
-
- Xiaomi Enters SUV Market with YU7 Launch, Targeting Tesla with Bold Pricing and High-Tech Features
- Black Sesame Maps Expansion Into Robotics With New Edge AI Strategy
- Wuhan's 'Black Tech' Powers China's Cross-Border Push with Niche Electronics and Scientific Firepower
- Maven 干货 全篇共:28232 字。预计阅读时间:110 分钟。建议收藏!
- IT运维必会的30个工具(it运维工具软件)
- 开源项目有你需要的吗?(开源项目什么意思)
- 自动化测试早就跑起来了,为什么测试管理还像在走路?
- Cursor 最强竞争对手来了,专治复杂大项目,免费一个月
- Cursor 太贵?这套「Cline+OpenRouter+Deepseek+Trae」组合拳更香
- 为什么没人真的用好RAG,坑都在哪里? 谈谈RAG技术架构的演进方向
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)