设计模式
可峰科技
1-不要试图去证明自己比别人能力强,
是因为不自信的人才去证明自己的能力,
大家要记住,
就是你在团队不要找同样的人,
团队应该找不同样的人,
就是你把自己的能力放下,
你是要有一种新的能力 把大家团结起来,
赋能别人的能力,
唯一的办法,
这帮聪明的人没有办法一起工作,
但是我在 就可以让他们一起工作,
这是一个强大的Leadership能力。
2-读书读的好的人,很少会想到去创业,而读书读的差的人,没人要他,他容易去创业,
所以不管你会读书不会读书,你有资源没有资源,机会都有,天生我材必有用,
你今天去想清楚,这世界成功的不是一条路,有很多的路
3-学些经济知识
展开
-
23种设计模式(菜鸟分析版)
23种设计模式原创 2023-08-01 10:14:22 · 764 阅读 · 0 评论 -
看完设计模式23式(感觉应该叫23种范例,是千千万万例子中的一部分),请把它忘掉,因为环境千变万化,无招胜有招!
一 创建型模式1-工厂方法(factory-method)只暴露抽象工厂和抽象产品的接口,可以在不改变上层接口的情况下,实现任何工厂和任何产品。其实还是抽象到上层的思想,保留好接口,其他继承实现。2-抽象工厂(abstract-factory)说不出什么,就是向上抽象,只保留接口就好。可以方便扩展,程序的原则,可以扩展,不要或者少修改。3-单例模式(singleton)就是只实例化一个类。典型的单例模式的写法,赋值和拷贝函数不存在,在私有空间中创建静态实例和构造函数,在公有空间中开放获得实例接原创 2021-07-03 16:12:21 · 116 阅读 · 0 评论 -
廖雪峰-设计模式
一、创建型模式1-工厂方法(Factory Method)工厂方法是指定义工厂接口和产品接口,但如何创建实际工厂和实际产品被推迟到子类实现,从而使调用方只和抽象工厂与抽象产品打交道。实际更常用的是更简单的静态工厂方法,它允许工厂内部对创建产品进行优化。调用方尽量持有接口或抽象类,避免持有具体类型的子类,以便工厂方法能随时切换不同的子类返回,却不影响调用方代码。2-抽象工厂(Abstract Factory)抽象工厂模式是为了让创建工厂和一组产品与使用相分离,并可以随时切换到另一个工厂以及另一组产原创 2021-05-27 16:25:56 · 352 阅读 · 0 评论 -
C++备忘录模式
自己理解:就是一个状态记录类,一个状态保存类,处理保存历史信息和不保存历史信息。参考代码:/* * C++ Design Patterns: Memento * Author: Jakub Vojvoda [github.com/JakubVojvoda] * 2016 * * Source code is licensed under MIT License * (for more details see LICENSE) * */#include <iostream>原创 2021-02-20 17:46:07 · 107 阅读 · 0 评论 -
C++观察者模式
自己理解:感觉和中介者差不多,主持人添加(attach)观察者然后,主持人向所有观察者广播(notify)参考代码/* * C++ Design Patterns: Observer * Author: Jakub Vojvoda [github.com/JakubVojvoda] * 2016 * * Source code is licensed under MIT License * (for more details see LICENSE) * */#include <原创 2021-02-20 17:40:24 · 81 阅读 · 0 评论 -
C++中介者模式
自己理解:中介者为其他人搭桥传话,中介者类似一个中间服务器的作用。参考代码/* * C++ Design Patterns: Mediator * Author: Jakub Vojvoda [github.com/JakubVojvoda] * 2016 * * Source code is licensed under MIT License * (for more details see LICENSE) * */#include <iostream>#incl原创 2021-02-20 17:34:01 · 96 阅读 · 0 评论 -
C++迭代器模式
自己理解:如果写成模板类的话,就是将数据与迭代类分离,就是stl迭代器的做法一样。/* * C++ Design Patterns: Iterator * Author: Jakub Vojvoda [github.com/JakubVojvoda] * 2016 * * Source code is licensed under MIT License * (for more details see LICENSE) * */#include <iostream>#in原创 2021-02-20 17:20:16 · 84 阅读 · 0 评论 -
C++解释器模式
自己理解:就是解释文本类与创作文本类分离,创作文本使用解释文本进行翻译。/* * C++ Design Patterns: Interpreter * Author: Jakub Vojvoda [github.com/JakubVojvoda] * 2016 * * Source code is licensed under MIT License * (for more details see LICENSE) * */#include <iostream>#incl原创 2021-02-20 16:58:10 · 117 阅读 · 0 评论 -
C++享元模式
自己理解:感觉就是使用map把个个子类包含进去,和工厂模式没有区别。参考代码/* * C++ Design Patterns: Flyweight * Author: Jakub Vojvoda [github.com/JakubVojvoda] * 2016 * * Source code is licensed under MIT License * (for more details see LICENSE) * */#include <iostream>#inc原创 2021-02-20 16:28:34 · 80 阅读 · 0 评论 -
C++工厂方法模式
自己理解:就是实现产品类与工厂类的分离。参考代码/* * C++ Design Patterns: Factory Method * Author: Jakub Vojvoda [github.com/JakubVojvoda] * 2016 * * Source code is licensed under MIT License * (for more details see LICENSE) * */#include <iostream>#include <原创 2021-02-20 16:06:06 · 111 阅读 · 0 评论 -
C++外观模式
自己理解:就是每个子类实现自己的功能,然后把所有子类组合在一个大类中,这样实现大类控制小类的功能。参考文章设计模式之外观模式实例(c++)原创 2021-02-20 16:00:46 · 84 阅读 · 0 评论 -
C++装饰模式
自己理解,就是统一一个类型接口,每个类都是同一个类型,只是实现的功能不同,这样就可以在一个类的基础上添加(也可以叫做装饰)其他功能。参考文章23种设计模式C++实例之装饰模式原创 2021-02-20 15:54:42 · 159 阅读 · 0 评论 -
C++组合模式
自己理解:就是所有类统一一个接口,有些类的私有成员变量包含同一接口的成员变量,这样就可以实现一个类似文件树一样的模式参考网址https://segmentfault.com/a/1190000020231630原创 2021-01-24 15:38:26 · 99 阅读 · 0 评论 -
C++:设计模式之命令模式(例子)
自己理解,就是开放出来命令接口,然后通过开放函数来传参,从而实现命令切换的功能很好的例子参考网址C++:设计模式之命令模式(例子)原创 2021-01-24 12:51:04 · 157 阅读 · 0 评论 -
C++职责链模式
自己理解,就是所有执行者统一一个接口,执行者有他的上级,自己完成不了的任务就交给上级,循环往复,这样的好处是方便添加与删除执行者改变职责链参考文章https://zhuanlan.zhihu.com/p/64140441...原创 2021-01-21 22:00:33 · 128 阅读 · 0 评论 -
建造者模式示例
自己理解,就是写好要建造或生产的接口类型,然后依次添加就可以参考文章https://blog.csdn.net/qq_33232152/article/details/92436881原创 2021-01-21 14:25:45 · 104 阅读 · 0 评论 -
桥接模式示例
自己理解,就是一个类有2个不同发展方向的类,但是这两个类之间又相互耦合,可以把2者分别抽象出来,1个类作为另一个类的私有数据类型进行桥接参考网址https://blog.csdn.net/qq_33791052/article/details/83214353...原创 2021-01-20 08:36:30 · 128 阅读 · 1 评论 -
适配器模式-以cartographer中的栅格插值为例
要适配的对象,目标是实现栅格插值,通过传入模板Grid来初始化,我们要构造一个适配器类来使用我们的数据(使用占用概率地图数据)适配这个Grid模板类,主要是实现GetValue这个函数。template<typename Grid>class BiCubicInterpolator { public: explicit BiCubicInterpolator(const Grid& grid) : grid_(grid) { // The + casts t原创 2021-01-15 17:09:07 · 540 阅读 · 0 评论 -
抽象工厂模式实例
参考文章抽象工厂模式实例自己总结:就是工厂是接口,产品是接口,实例化什么工厂,然后工厂生产什么产品,有什么好处,方便扩展工厂,比如汽车厂、洗衣机厂、衣柜厂、,这些厂都要请工人,但是汽车厂需要机械维修工,洗衣机厂需要洗衣工,衣柜厂需要木匠。...原创 2021-01-14 13:41:22 · 249 阅读 · 0 评论 -
JakubVojvoda / design-patterns-cpp 设计模式
github 网址:JakubVojvoda / design-patterns-cpp使用Qt打开正常编译通过需要如下修改:在CmakeList.txt 加上这句SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")感悟:代码都看懂了,但是遇到实际情况肯能考虑的不会那么周全,建议在更多大牛的代码中慢慢理解以上23种设计模式的思路,总体说...原创 2020-04-10 19:35:28 · 349 阅读 · 0 评论