设计模式
文章平均质量分 61
ivy_0709
作者不懒哦,有文章被点赞了或关注了都会被作者重新编辑,进行优化补充,方便后人更好的理解和阅读。
文章中如果有写错、表述不明、有疑问或者需要扩展的知识,欢迎留言或者私信。
少点收藏文章,看完觉得有用再收藏。
展开
-
迭代器模式
迭代器模式———用来访问一个数据项序列(称为聚合对象),而无需关心序列内部的组织结构(因为通过迭代器来GetCurrent,下一个就用Next)。//Iterator抽象迭代器角色(Iterator)。具体的迭代器继承之。一般的迭代器都提供MoveNext,Next,GetCurrent这几个接口。//IListCollection抽象聚合角色(Aggregate)。提供一个GetIterator的接口。具体的聚合类继承之,实现这个接口。也就是返回一个具体的迭代器类。class P...原创 2021-06-01 14:47:19 · 168 阅读 · 0 评论 -
策略模式
策略模式是指有一个策略类,不同的策略类实现不同的算法。策略模式封装了变化,把具体算法用策略类包装起来。封装变化面向对象的重要的思维方式。目录定义:源码实例:类图Context以及Strategy对象Context设置原始StrategyContext主动切换Strategy定义: 策略模式中定义一系列算法的方法,这些算法都是完成相同的工作,只...原创 2018-04-16 17:11:17 · 218 阅读 · 0 评论 -
状态模式
状态模式是一种将状态封装成类对象,将与状态相关的行为都封装到类中去作为类成员函数的模式。 在什么时候会使用状态模式呢?——当一个对象的行为取决于他现在所处于的状态,并且在输入事件或者随着时间的推移会改变对象的状态的时候。 状态模式是实现状态机的方法之一,另一方法为是枚举+条件分支,在《游戏编程模式》中的状态模式章节中可以看到分别用这两种方法实现的状态机的事例。 ...原创 2018-04-16 17:18:07 · 301 阅读 · 0 评论 -
组合模式
本文介绍了组合模式以及对应分析一下在最近看的ai源码中前提模块-使用类实现逻辑操作的实现细节。目录组合模式1.类图:2.成员介绍:3.使用:组合模式的扩展——逻辑操作类的实现源码例子:1.Component相关:2.Leaf相关:3.Composite相关:组合模式将对象组合成树形结构以表示“部分-整体”的层次结构。组合模型使得用户对单个对象和组合...原创 2019-03-14 17:44:12 · 216 阅读 · 0 评论 -
模版方法
比较简单也比较常见的一种设计模式,经常会用来代码级别的优化,减少重复代码。定义: 在父类中定义一个操作中的算法的骨架,即“模版”,而将其中的一些步骤延迟到子类中。模版方法使得子类可以不改变一个算法的结构即可以重定义该算法的某些特定步骤。 原则:别找我 我会找你 (子类别找,父类会去找子类的实现) 就是把共有的都抽象到父类中,父类中定义一些虚函数,用来实现一个模版方...原创 2019-03-15 11:21:35 · 216 阅读 · 0 评论 -
观察者模式
观察者模式是经常被实现的模式,由于使用的普遍性,也被集成到了一些语言的语言层面。类图:定义:让多个观察者Observer对象同时监听某一主题对象Subject,当主题对象在某种情况下会进行通知所有的观察者对象,进行更新。观察者模式,又叫发布-订阅模式,publish/subscribe模式。【观察者Observer 订阅,主题Subject 发布】语言层面的观察者...原创 2019-03-21 15:59:34 · 148 阅读 · 0 评论 -
UML类图符号小记
看了这么多类图,最终也只能记住继承的符号。每次都是搜这个符号代表什么意思,然后看过就忘了。 推荐一个画图的网站,网页版的https://www.draw.io/聚合符号空心菱形聚合:Aggregation,意思是gatherthingstogether。聚合符号表示的就是聚合关系,符号两端分别是整体(菱形那边)和部分的关系。聚合关系强调是“整体”包...原创 2019-04-26 16:21:35 · 2015 阅读 · 0 评论 -
工厂模式
1.简单工厂模式:简单工厂类SimpleFactory里包含一个创建物体的方法CreatePizza。即把创建对象的细节从上层剥离开来,封转到到一个单独的类SimpleFactory中,当需要增加或删除时修改此SimpleFactory类即可。如下图所示,其实就是把 createPizza方法从PizzaStore类中分离开到一个单独的类中。这个类SimpleFactory类就是...原创 2019-04-29 12:11:53 · 144 阅读 · 0 评论 -
单例模式以及一些思考
单例模式的特点 该类只能有一个实例,并提供一个全局访问点。1.简单的单例模式(C++)如下:1)私有化默认构造函数(还需要私有拷贝构造函数(其实就是构造函数一种)、赋值操作符)以及析构函数。2)static成员函数getInstance 提供全局访问点3)static成员变量_instance只能有一个实例class Singleton {priva...原创 2019-04-29 16:29:41 · 409 阅读 · 0 评论