- 博客(6)
- 问答 (1)
- 收藏
- 关注
原创 【设计模式】观察者模式 Observer Pattern
什么是观察者模式?观察者模式, 定义了一种对象间的 一对多的依赖关系, 让多个观察者同时监听某一个主题对象。 当主题对象的状态发生改变时, 同通知他所有的观察者, 让他们能够自动更新。背景很多时候, 在应用程序的一部分发生改变时, 需要同时更新应用程序的其他部分。 一种办法是, 让观察者定期反复检查主题对象的状态来进行更新, 但这种办法存在两个主要的问题:占用大量的cpu时间来检测新的状态, 造成资源浪费依赖于检测更新的时间间隔, 更新没有及时性观察者模式可以解决这些问题。如何实现观察者
2021-05-02 11:28:51
117
原创 【设计模式】简介和列表
Design Patterns - Elements of Reusable Object-Oriented Software 这本书中共提到23种设计模式。 这些设计模式可以分成三大类。23 design patternscreational pattern(创建型模式) : 5abstract factory(抽象工厂)builder(建造者)factory(工厂)prototype(原型模式)Singleton(单例)structural pattern(结构性模式):7
2021-05-01 16:32:15
110
原创 【设计模式】 单例模式singleton
什么是单例模式?The singleton design pattern ensures that a class has only one instance and provides a global point of access to that intance.Encapsulated “just-in-time initialization" or “initialization on first use” or “lazy intialization”应用场景-Say each coun
2021-05-01 15:48:58
108
原创 【设计模式】 依赖注入 和 依赖反转
什么是 依赖注入 和 依赖反转?背景:如果一个类(或者函数)需要依赖于另外一个类来实现某个功能时, 最直接也最原始的做法是, 在这个类中添加一个所依赖类的成员变量, 通过调用所依赖类的成员函数来实现那个功能。(或者 在实现功能的函数中 创建一个被依赖类的临时对象 如下面代码)。class Car{ public: void run() { cout<<"car is running"<<endl; };};class Postman{public: voi
2021-04-27 17:36:44
423
原创 Dependence Injection 依赖注入
什么是 依赖注入 dependency injection如果一个函数(或者类)依赖某个类的实例来实现某个功能,最直接的做法是在这个函数中建立一个实例, 然后调用这个实例的某个函数去实现这个功能, 例如class Car{public: void run(){ cout<<"car running now\n"; };};void deliver(){ Car car; car.run();}问题: 但如果所依赖的对象有多种选择, 而且这种选择未来可能会增加, 就需要
2021-04-27 15:20:27
208
原创 【算法】随机洗牌算法
目的: 洗牌后, 每张牌出现在每个位置上的概率是相同的相同问题:1.shuffle a deck of cards(洗牌)2.randomize an array(打散数组)3.generate a random permutation of array elements(随机排列数组)最佳算法(1和2是完全相同的算法的两种做法):从头或者从尾遍历数组, 把当前元素和剩余元素中一个随机元素交换。 重复此操作一直到遍历完成。 Start from the first elem.
2021-04-19 16:05:19
499
空空如也
C++: 为什么我设计的多线程并没有比单线程快?求解答
2021-08-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人