03 2022 档案

摘要:一个目标:管理变化,提高复用 掌握设计模式一个核心目标:管理变化,提高复用。在使用设计模式中发现并没有实现复用,这就和设计初衷相违背了,说明代买写的不好。 两种手段:分解VS.抽象 在代码设计中,该开始想要怎样面向对象先要分解,比如这是梨,这是苹果,这是香蕉建立这杨分解的思维,知道它们不同。但是呢我 阅读全文
posted @ 2022-03-26 18:52 放飞梦想C 阅读(655) 评论(2) 推荐(0)
摘要:领域规则模式 在特定领域中,某些变化虽然频繁,但可以抽象为某种规则。这时候,结合特定领域,将问题抽象为语法规则,从而给出在该领域下的一般性解决方案。 典型模式 Interpreter Interpreter 动机( Motivation ) 在软件构建过程中,如果某一特定领域的问题比较复杂 ,类似的 阅读全文
posted @ 2022-03-25 20:25 放飞梦想C 阅读(180) 评论(0) 推荐(0)
摘要:行为变化模式 在组件的构建过程中,组件行为的变化经常导致组件本身剧烈的变化。“行为变化” 模式将组件的行为和组件本身进行解耦,从而支持组件行为的变化,实现两者之间的松耦合。 典型模式 Command Visitor Visitor 动机( Motivation ) 在软件构建过程中,由于需求的改变, 阅读全文
posted @ 2022-03-25 18:44 放飞梦想C 阅读(451) 评论(0) 推荐(0)
摘要:行为变化模式 在组件的构建过程中,组件行为的变化经常导致组件本身剧烈的变化。“行为变化” 模式将组件的行为和组件本身进行解耦,从而支持组件行为的变化,实现两者之间的松耦合。 典型模式 Command Visitor Command 动机( Motivation ) 在软件构建过程中,“行为请求者” 阅读全文
posted @ 2022-03-25 17:56 放飞梦想C 阅读(355) 评论(0) 推荐(0)
摘要:数据结构模式 常常有一-些组件在内部具有特定的数据结构,如果让客户程序依赖这些特定的数据结构,将极大地破坏组件的复用。这时候,将这些特定数据结构封装在内部,在外部提供统一的接口,来实现与特定数据结构无关的访问,是一种行之有效的解决方案。 典型模式 Composite Iterator Chain o 阅读全文
posted @ 2022-03-22 23:23 放飞梦想C 阅读(183) 评论(0) 推荐(0)
摘要:数据结构模式 常常有一-些组件在内部具有特定的数据结构,如果让客户程序依赖这些特定的数据结构,将极大地破坏组件的复用。这时候,将这些特定数据结构封装在内部,在外部提供统一的接口,来实现与特定数据结构无关的访问,是一种行之有效的解决方案。 典型模式 Composite Iterator Chain o 阅读全文
posted @ 2022-03-22 22:16 放飞梦想C 阅读(404) 评论(0) 推荐(0)
摘要:数据结构模式 常常有一-些组件在内部具有特定的数据结构,如果让客户程序依赖这些特定的数据结构,将极大地破坏组件的复用。这时候,将这些特定数据结构封装在内部,在外部提供统一的接口,来实现与特定数据结构无关的访问,是一种行之有效的解决方案。 典型模式 Composite Iterator Chain o 阅读全文
posted @ 2022-03-22 21:42 放飞梦想C 阅读(324) 评论(0) 推荐(0)
摘要:状态变化模式 在组件构建过程中,某些对象的状态经常面临变化,如何对这些变化进行有效的管理?同时又维持高层模块的稳定?“状态变化”模式为这一问题提供了一种解决方案。 典型模式 State Memento Memento 动机(Motivation) 在软件构建过程中,某些对象的状态在转换过程中,可能由 阅读全文
posted @ 2022-03-22 18:49 放飞梦想C 阅读(190) 评论(0) 推荐(0)
摘要:状态变化模式 在组件构建过程中,某些对象的状态经常面临变化,如何对这些变化进行有效的管理?同时又维持高层模块的稳定?“状态变化”模式为这一问题提供了一种解决方案。 典型模式 State Memento State 动机(Motivation) 在软件构建过程中,某些对象的状态如果改变,其行为也会随之 阅读全文
posted @ 2022-03-22 18:33 放飞梦想C 阅读(407) 评论(0) 推荐(0)
摘要:接口隔离模式 在组件构建过程中,某些接口之间直接的依赖常常会带来很多问题、甚至根本无法实现。采用添加一层间接(稳定)接口,来隔离本来互相紧密关联的接口是一种常见的解决方案。 典型模式 Facade Proxy Adapter Mediator Mediator 动机( Motivation ) 在软 阅读全文
posted @ 2022-03-21 22:29 放飞梦想C 阅读(146) 评论(0) 推荐(0)
摘要:接口隔离模式 在组件构建过程中,某些接口之间直接的依赖常常会带来很多问题、甚至根本无法实现。采用添加一层间接(稳定)接口,来隔离本来互相紧密关联的接口是一种常见的解决方案。 典型模式 Facade Proxy Adapter Mediator Adapter 动机(Motivation) 在软件系统 阅读全文
posted @ 2022-03-21 19:19 放飞梦想C 阅读(289) 评论(0) 推荐(0)
摘要:接口隔离模式 在组件构建过程中,某些接口之间直接的依赖常常会带来很多问题、甚至根本无法实现。采用添加一层间接(稳定)接口,来隔离本来互相紧密关联的接口是一种常见的解决方案。 典型模式 Facade Proxy Adapter Mediator Proxy 动机(Motivation) 在面向对象系统 阅读全文
posted @ 2022-03-21 17:26 放飞梦想C 阅读(320) 评论(0) 推荐(0)
摘要:接口隔离模式 在组件构建过程中,某些接口之间直接的依赖常常会带来很多问题、甚至根本无法实现。采用添加一层间接(稳定)接口,来隔离本来互相紧密关联的接口是一种常见的解决方案。 典型模式 Facade Proxy Adapter Mediator Facade 系统间耦合的复杂度 动机(Motivati 阅读全文
posted @ 2022-03-21 17:25 放飞梦想C 阅读(150) 评论(0) 推荐(0)
摘要:单一职责模式: 在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任。 典型模式 Decorator Bridge Bridge 动机(Motivation) 由于某些类型的固有的实现逻辑,使得它们具有两个变化的维 阅读全文
posted @ 2022-03-19 22:02 放飞梦想C 阅读(231) 评论(0) 推荐(0)
摘要:单一职责模式: 在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任。 典型模式 Decorator Bridge Decorator 动机(Motivation) 在某些情况下我们可能会“过度地使用继承来扩展对象 阅读全文
posted @ 2022-03-19 21:05 放飞梦想C 阅读(134) 评论(0) 推荐(0)
摘要:组件协作模式: 现代软件专业分工之后的第一个结果是“框架与应用程序的划分”,“组件协作”模式通过晚期绑定,来实现框架与应用程序之间的松耦合,是二者之间协作时常用的模式。 典型模式 Template Method Strategy Observer / Event Observer 动机(Motiva 阅读全文
posted @ 2022-03-18 23:38 放飞梦想C 阅读(274) 评论(0) 推荐(0)
摘要:组件协作模式: 现代软件专业分工之后的第一个结果是“框架与应用程序的划分”,“组件协作”模式通过晚期绑定,来实现框架与应用程序之间的松耦合,是二者之间协作时常用的模式。 典型模式 Template Method Observer / Event Strategy Strategy 动机(Motiva 阅读全文
posted @ 2022-03-18 21:38 放飞梦想C 阅读(212) 评论(0) 推荐(0)
摘要:组件协作模式: 现代软件专业分工之后的第一个结果是“框架与应用程序的划分”,“组件协作”模式通过晚期绑定,来实现框架与应用程序之间的松耦合,是二者之间协作时常用的模式。 典型模式 Template Method Observer / Event Strategy Template Method 模式 阅读全文
posted @ 2022-03-18 19:53 放飞梦想C 阅读(109) 评论(0) 推荐(0)
摘要:对象创建模式 通过“对象创建” 模式绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定。它是接口抽象之后的第一步工作。 典型模式 Factory Method Abstract Factory Prototype Builder Builder 动机(Mo 阅读全文
posted @ 2022-03-15 01:09 放飞梦想C 阅读(529) 评论(0) 推荐(0)
摘要:对象创建模式 通过“对象创建” 模式绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定。它是接口抽象之后的第一步工作。 典型模式 Factory Method Abstract Factory Prototype Builder Prototype 动机 阅读全文
posted @ 2022-03-14 19:06 放飞梦想C 阅读(454) 评论(0) 推荐(0)
摘要:对象创建模式 通过“对象创建” 模式绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定。它是接口抽象之后的第一步工作。 典型模式 Factory Method Abstract Factory Prototype Builder Abstract Fact 阅读全文
posted @ 2022-03-14 18:18 放飞梦想C 阅读(108) 评论(0) 推荐(0)
摘要:对象创建模式 通过“对象创建”模式绕开new ,来避免对象创建( new )过程中所导致的紧耦合(依赖具体类) , 从而支持对象创建的稳定。它是接口抽象之后的第一步工作。 典型模式 Factory Method Abstract Factory Prototype Builder 工厂方法(Fact 阅读全文
posted @ 2022-03-13 23:54 放飞梦想C 阅读(138) 评论(0) 推荐(0)
摘要:对象性能模式 面向对象很好地解决了"抽象”的问题,但是必不可免地要付出一定的代价。对于通常情况来讲,面向对象的成本大都可以忽略不计。但是某些情况,面向对象所带来的成本必须谨慎处理。 典型模式 Flyweight Singleton Flyweight 享元模式:运用共享技术有效地支持大量细粒度的对象 阅读全文
posted @ 2022-03-12 19:41 放飞梦想C 阅读(107) 评论(0) 推荐(0)
摘要:对象性能模式 面向对象很好地解决了"抽象”的问题,但是必不可免地要付出一定的代价。对于通常情况来讲,面向对象的成本大都可以忽略不计。但是某些情况,面向对象所带来的成本必须谨慎处理。 典型模式 Flyweight Singleton Singleton 单例模式其意图是:保证一个类只有一个实例,并提供 阅读全文
posted @ 2022-03-12 19:28 放飞梦想C 阅读(153) 评论(0) 推荐(0)
摘要:cpp #include<thread> #include<mutex> #include<vector> #include<condition_variable> #include<boost/circular_buffer.hpp> #include<functional> #include<a 阅读全文
posted @ 2022-03-09 21:49 放飞梦想C 阅读(68) 评论(0) 推荐(0)
摘要:无界队列 #include<queue> #include<mutex> #include<condition_variable> #include<optional> #include<cassert> #include<thread> template<typename T,typename C 阅读全文
posted @ 2022-03-08 23:35 放飞梦想C 阅读(713) 评论(1) 推荐(0)
摘要:共享指针 管理指针的存储,提供有限的垃圾回收工具,并可能与其他对象共享该管理。 shared_ptr类型的对象都能够获得指针的所有权并共享该所有权:一旦它们获得所有权,当最后一个所有者释放该所有权时,指针的所有者组就负责删除该所有者。 shared_ptr对象在自身被销毁后,或者一旦其值因赋值操作或 阅读全文
posted @ 2022-03-07 23:46 放飞梦想C 阅读(167) 评论(0) 推荐(0)
摘要:唯一指针 管理指针的存储,提供有限的垃圾回收工具,与内置指针相比几乎没有开销(取决于所使用的删除程序)。 这些对象具有获取指针所有权的能力:一旦它们获得所有权,它们就会通过在某个时候负责删除指向的对象来管理指向的对象。 unique_ptr对象在它们本身被销毁时,或者一旦它们的值通过赋值操作或显式调 阅读全文
posted @ 2022-03-07 20:19 放飞梦想C 阅读(472) 评论(0) 推荐(0)
摘要:向量 向量是序列容器,表示可以更改大小的数组。 就像数组一样,向量对其元素使用连续的存储位置,这意味着也可以使用指向其元素的常规指针上的偏移量来访问其元素,并且与数组一样高效。但与数组不同的是,它们的大小可以动态变化,它们的存储由容器自动处理。 在内部,向量使用动态分配的数组来存储其元素。可能需要重 阅读全文
posted @ 2022-03-06 22:34 放飞梦想C 阅读(270) 评论(0) 推荐(0)
摘要:atomic 每个 std::atomic 模板的实例化和全特化定义一个原子类型。若一个线程写入原子对象,同时另一线程从它读取,则行为良好定义。 另外,对原子对象的访问可以建立线程间同步,并按 stdmemory_order 所对非原子内存访问定序。 stdatomic 既不可复制亦不可移动。 成员 阅读全文
posted @ 2022-03-02 23:21 放飞梦想C 阅读(351) 评论(0) 推荐(0)
摘要:promise 空模板 非 void 特化,用于在线程间交流对象 void 特化,用于交流无状态事件 类模板 stdpromise 提供存储值或异常的设施,之后通过 stdpromise 对象所创建的 stdfuture 对象异步获得结果。注意 stdpromise 只应当使用一次。 每个 prom 阅读全文
posted @ 2022-03-02 23:03 放飞梦想C 阅读(185) 评论(0) 推荐(0)
摘要:condition_variable condition_variable 类是同步原语,能用于阻塞一个线程,或同时阻塞多个线程,直至另一线程修改共享变量(条件)并通知 condition_variable 。 有意修改变量的线程必须 获得 stdmutex (常通过 stdlock_guard ) 阅读全文
posted @ 2022-03-02 23:01 放飞梦想C 阅读(321) 评论(0) 推荐(0)
摘要:lock_guard 类 lock_guard 是互斥体包装器,为在作用域块期间占有互斥提供便利 RAII 风格机制。 创建 lock_guard 对象时,它试图接收给定互斥的所有权。控制离开创建 lock_guard 对象的作用域时,销毁 lock_guard 并释放互斥。 lock_guard 阅读全文
posted @ 2022-03-02 23:00 放飞梦想C 阅读(181) 评论(0) 推荐(0)
摘要:mutex mutex 类是能用于保护共享数据免受从多个线程同时访问的同步原语。 mutex 提供排他性非递归所有权语义: 调用方线程从它成功调用 lock 或 try_lock 开始,到它调用 unlock 为止占有 mutex 。 线程占有 mutex 时,所有其他线程若试图要求 mutex 的 阅读全文
posted @ 2022-03-02 22:59 放飞梦想C 阅读(130) 评论(0) 推荐(0)
摘要:thread 类 thread 表示单个执行线程。线程允许多个函数同时执行。 线程在构造关联的线程对象时立即开始执行(等待任何OS调度延迟),从提供给作为构造函数参数的顶层函数开始。顶层函数的返回值将被忽略,而且若它以抛异常终止,则调用 stdterminate 。顶层函数可以通过 stdpromi 阅读全文
posted @ 2022-03-02 22:58 放飞梦想C 阅读(191) 评论(0) 推荐(0)