摘要: (1)跨平台的使用 C++:编写跨平台程序的关键,C/C++中的内置宏定义 分两部分: 操作系统判定: Windows: WIN32 Linux: linux Solaris: __sun 编译器判定: VC: _MSC_VER GCC/G++: __GNUC__ SunCC: __SUNPRO_C 阅读全文
posted @ 2018-08-24 10:54 头文件1991 阅读(2374) 评论(0) 推荐(0) 编辑
摘要: 组合模式 概念:将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 适用场景:需求中体现部分与整体层次的结构时,以及希望用户可以忽略组合对象与单个对象的不同,统一地使用组合结构中的所有对象。 //company.h //main.cpp 阅读全文
posted @ 2018-04-27 10:46 头文件1991 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 备忘录:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态。 Memento模式比较适用于功能比较复杂,但需要维护或记录属性历史的类,或者需要保存的属性只是众多属性的一小部分。 //mementorole.h //OrignatorR 阅读全文
posted @ 2018-04-26 17:47 头文件1991 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 适配器模式:将一个类的接口转换成客户希望的另外一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适用场景:使用一个已经存在的类,但如果它的接口,也就是它的方法和你的要求不相同时,就应该考虑使用适配器模式。两个类所做的事情相同或相似,但是具有不同的接口时要使用它。 阅读全文
posted @ 2018-04-26 16:15 头文件1991 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 状态模式: 概念:当一个对象的内部状态改变时,允许改变其行为,这个对象看起来像是改变了其类。 状态模式主要解决的是当控制一个对象状态的转换条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。 应用场景:当一个对象的行为取决于它的状态,并且它必须在运 阅读全文
posted @ 2018-04-26 08:58 头文件1991 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 简单工厂模式 概念:简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。 适合应用于具有多个分支,不同的情况需要生成对应的类,将分支移到工厂类中,减少客户端的复杂度。但如果要新添加一个产品类的话,需要修改工厂类的代码。 简单工厂模式在遇到新的类添加时,需要对工厂类进行修改,这未被了开放-封闭原 阅读全文
posted @ 2018-04-25 11:24 头文件1991 阅读(453) 评论(0) 推荐(0) 编辑
摘要: 观察者模式:定义一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有的观察者对象,使他们能够各自更新自己。 观察者模式的关键对象时主题subject和观察者observe,一个subject可以有任意数目的依赖它的Observe,一旦subject的 阅读全文
posted @ 2018-04-21 17:10 头文件1991 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 转载自:https://blog.csdn.net/hhu1506010220/article/details/51971642 介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作。本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和f 阅读全文
posted @ 2018-04-21 16:23 头文件1991 阅读(2290) 评论(0) 推荐(0) 编辑
摘要: 建造者模式:将一个复杂对象的构建与它的表现分离,使得同样的构建过程可以创造不同的表示。 建造者应用场景:主要用于创造一些复杂的对象,这些对象内部构建间的建造顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化。建造者模式可以使建造代码与表示代码分离,由于建造者模式隐藏了该产品是如何组装的,所以若需 阅读全文
posted @ 2018-04-21 09:48 头文件1991 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 外观模式:为子系统中的一组接口提供一个一致的界面,从模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 使用场景: (1)设计初期,有意识的将不同的两个层进行分离,比如经典的三层架构,就要考虑数据访问层和业务逻辑层,业务逻辑层与表现层,层与层之间建立外观facade。降低耦合性。 (2)开 阅读全文
posted @ 2018-04-19 20:39 头文件1991 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 原型模式其实就是从一个对象在创建另外一个可定制的对象,而且不需要知道任何创建的细节。 浅拷贝和深拷贝: 浅拷贝:被拷贝对象的所有变量都含有与原来对象相同的值,而所有的对其他对象的引用都仍然指向原来的对象。 深拷贝:被拷贝对象 阅读全文
posted @ 2018-04-19 19:52 头文件1991 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 模板方法模式: 定义一个操作中的算法的骨架,将一些步骤延迟到之类中。模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。 总结: (1)模板方法模式是通过把不变行为搬移到超类,取出子类中的重复代码来体现它的优势。 (2)模板方式模式就是提供一个很好的代码复用平台。 (3)当不变 阅读全文
posted @ 2018-04-19 19:27 头文件1991 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 转载自:https://blog.csdn.net/si_zhou_qun_84342712/article/details/53187106 1.联合体union的基本特性——和struct的同与不同 union,中文名“联合体、共用体”,在某种程度上类似结构体struct的一种数据结构,共用体( 阅读全文
posted @ 2018-04-08 14:30 头文件1991 阅读(12641) 评论(0) 推荐(0) 编辑
摘要: 转载自:https://blog.csdn.net/sheng_bin/article/details/52961520 什么叫库? 库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用。 一种情况是某些代码需要给别人使用,但是我们不希望别人看到源码,就需要以库的形式进行 阅读全文
posted @ 2018-04-06 15:43 头文件1991 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 转载自:https://blog.csdn.net/vsooda/article/details/9216245 linux中,文件查找不是通过文件名称来查找的。实际上是通过i节点来实现文件的查找定位的。我们可以形象的将i节点看做是一个指针fip。当文件存储到磁盘上去的时候,文件肯定会存放到一个磁盘 阅读全文
posted @ 2018-04-06 15:19 头文件1991 阅读(441) 评论(0) 推荐(0) 编辑