
辅助开发
文章平均质量分 95
羽野子
苦行者,路不在远,而在于恒。
展开
-
VM虚拟机配置centos7的网络连接
首先感谢:https://www.linuxidc.com/Linux/2017-07/145845.htm上面网址有较详细的步骤。1.选择vmware的编辑,然后点击虚拟网络编辑器2.点击更改设置(需要有管理员权限)3.选择VMnet0为桥接模式,选择自动或者网卡4.打开“网络和共享中心”选择“VMware Virtual Ethernet Ad...原创 2018-10-07 15:50:20 · 2391 阅读 · 0 评论 -
c++ 设计模式23讲之组合模式
组合模式定义:组合多个对象形成树形结构,实现部分-整体的层次关系优点:(1)很清楚的定义树形层次,结点和叶结点进行分割,便于扩展(2)很灵活的递归组合缺点:(1)扩展的对象需要满足抽象接口的约束,相互间具有依赖关系(2)组合深度很大时创建会很麻烦,也会创建很多的子对象(3)类型转换时避免截断使用范围:满足树形结构,且子结点也可做为下一个组合的根节点(类似...原创 2019-08-11 21:15:05 · 147 阅读 · 0 评论 -
c++ 设计模式23讲之模板方法模式
模板方法模式定义:定义一个操作中算法的框架,而将一些步骤延迟到子类优点:(1)通过派生类覆盖父类的方法来实现反向控制结构(2)模板方法提供一种代码复用技术缺点:(1)需为每一个基本方法实现一个子类,如果父类可变方法多将导致类的个数增加使用范围:提供一套算法框架,将具体细节实现步骤延迟到子类结构:template_method_pattern:模板抽象类...原创 2019-08-20 18:34:40 · 122 阅读 · 0 评论 -
c++ 设计模式23讲之装饰模式
装饰模式定义:不改变对象前提下动态增加其职责,实现一种比子类更灵活的扩展方式优点:(1)比继承更灵活,不会导致类个数极度增加(2)可以对一个对象多种装饰(3)具体构建类和装饰类可单独变化缺点:(1)会产生很多小对象,占用资源(2)需要区别每个对象的连接关系(3)对于多次装饰类增加排错难度使用范围:不改变对象增加职责功能的情况结构:decora...原创 2019-08-15 19:28:43 · 155 阅读 · 0 评论 -
c++ 设计模式23讲之外观模式
外观模式定义:提供统一入口来操作子系统,避免客户端与各个子系统的耦合性优点:(1)对客户端屏蔽各子系统,减少之间的耦合(2)子系统的修改也不会影响到外观对象缺点:(1)外观模式未能很好限制客户端直接使用子系统使用范围:当需访问多粒度的子系统或者子流程情况如:BS模式的主界面或者导航页面结构:实现:namespace structura...原创 2019-08-15 21:17:24 · 121 阅读 · 0 评论 -
c++ 设计模式23讲之访问者模式
访问者模式定义:对象结构中对众多的元素进行访问操作,将结构分为访问者对象和元素对象优点:(1)增加新的访问很方便(2)将元素的访问集中到一个访问者对象,而不是在一个个元素类中实现缺点:(1)增加新的元素类比较困难,需要需要具体访问者,不满足开闭原则(2)破坏封装性,访问者对象需要对元素对象进行操作,可能会暴露元素对象内部操作和状态使用范围:一个对象结构包含对...原创 2019-08-21 10:57:56 · 142 阅读 · 0 评论 -
c++ 设计模式23讲之观察者模式
/*编程小技巧1.声明和定义最好分别写在.h和.cpp文件,避免循环依赖2.前向声明只能使用指针和引用的声明,不能初始化对象和调用方法3.共同的方法最好集成在基类,避免代码冗余4.代码是人看的,不要用很炫的技巧把自己坑了5.virtual override static可以用在声明但不能用在定义6.inline要用在定义开头,用在声明无效7.避免转成基类截断,最好用智能指针或者bo...原创 2019-08-12 15:25:22 · 139 阅读 · 0 评论 -
c++ 设计模式23讲(番外篇)之简单工厂模式
简单工厂模式定义:定义一个工厂类根据不同参数创建其他类的实例优点:(1)将实例创建与使用分离(2)可通过配置增加新的产品类,灵活扩展(3)客户端可不关心产品类类名,只需知道参数定义和生成实例的对应关系缺点:(1)工厂类集合了所有创建逻辑,指责过大,一旦崩溃影响很大(2)新增加参评类需要同步修改工厂类使用范围:众多相似关系的产品独立创建各自实例情况,如调用...原创 2019-08-12 21:26:09 · 143 阅读 · 0 评论 -
c++ 设计模式23讲之工厂模式
工厂模式与简单工厂的区别在与,简单工厂是工厂类创建实例对象;工厂模式是对不同产品类增加各自的创建工厂类工厂模式定义:定义一个创建产品对象的接口工厂,用接口工厂的派生类实现对产品派生类的创建优点:(1)产品实例的细节进行封装,向客户隐藏了实例化步骤(2)增加新产品只需增加产品类和生成产品实例的工厂类缺点:(1)产品类与产品实例生成类成对出现和维护(2)增加了中...原创 2019-08-12 21:48:56 · 105 阅读 · 0 评论 -
c++ 设计模式23讲之抽象工厂模式
抽象工厂模式与工厂模式的区别在于,抽象工厂是工厂类的升级版本。工厂模式适用于一维(产品等级),抽象工厂适用于二维(产品等级与产品簇)抽象工厂模式定义:提供创建一系列相关或相互依赖的接口,通过具体的工厂类来创建二级产品的对象实例优点:(1)产品实例的细节进行封装,向客户隐藏了实例化步骤(2)增加新产品只需增加产品类和生成产品实例的工厂类缺点:(1)产品类与产品实例...原创 2019-08-12 23:08:03 · 183 阅读 · 0 评论 -
c++ 设计模式23讲之状态模式
状态模式定义:允许一个对象在内部状态改变时改变其行为优点:(1)封装了状态的转换规则,可以对状态对象统一管理而不是分散到一个业务代码中(2)注入不同的状态对象实现不同的行为(3)环境对象可以共享状态对象缺点:(1)结构和实现都很复杂容易导致代码混乱,且多半存在环境类与状态类相互依赖情况(2)增加状态类须同时修改状态转换源代码,不满足开闭原则使用范围:对象...原创 2019-08-20 16:07:22 · 138 阅读 · 0 评论 -
c++ 设计模式23讲之备忘录模式
可以用友元来实现对私有成员的访问备忘录模式定义:不破坏封装前提下捕获一个对象的内部状态,并在对象之外保存,从而使对象能在以后恢复到该状态优点:(1)实现一种恢复机制,对象可回溯到先前状态(2)可采用集合方式实现多次回溯操作缺点:(1)资源消耗过大,有众多的临时对象需要分配和跟踪使用范围:需要保存一个对象全部或者部分状态,且会触发回撤情况如: 文档编辑...原创 2019-08-20 14:09:56 · 152 阅读 · 0 评论 -
c++ 设计模式23讲之命令模式
命令模式定义:将不同的请求封装成抽象的命令,通过命令内部来调用真实的类实现方法优点:(1)将请求者和接受者解耦合,请求者只需发相关命令,命令内部调用接受者方法(2)很方便扩展新的命令缺点:(1)会导致过多的命令类,增加了中间层代码使用范围:调用者需要将请求和实现分类的系统,存在同级关系的众多命令类如:计算器的加减乘除等操作命令,游戏角色的上下左右移动命令等...原创 2019-08-10 18:09:46 · 125 阅读 · 0 评论 -
c++ 设计模式23讲之建造者模式
建造者模式是将局部成员构建成一个整体,返回整体产品对象,抽象工厂是针对一系列产品的对象创建和返回建造者模式定义:将一个复杂对象的构建与表示分离,通过导演类方法依次组装好局部零件返回产品对象优点:(1)客户端不需知道产品内部细节,只跟建造的导演类有依赖关系(2)具体建造间无相关性,便于扩展(3)产品集成创建只在导演类方法中,便于修改缺点:(1)创建的产品必须具...原创 2019-08-13 17:17:11 · 138 阅读 · 0 评论 -
c++ 设计模式23讲之原型模式
原型模式考虑是深拷贝还是浅拷贝,浅拷贝直接通过自带的复制构造、赋值构造即可,深拷贝就需要满足5原则。最好将成员变量定义为智能指针,容器,栈对象原型模式定义:通过实例的克隆方法实现新的实例创建优点:(1)创建实例很复杂时可以简化创建过程提高效率(2)实例创建有很多前置条件时可以跳过缺点:(1)深克隆会操作很麻烦,考虑指针重分配、重释放,状态一致(2)对类进...原创 2019-08-13 22:26:31 · 123 阅读 · 0 评论 -
c++ 设计模式23讲之桥联模式
桥联模式考虑多继承关系的类按照维度进行降解,实现N*M转成N+M桥联模式定义:将每个维度进行抽象化,将抽象部分和实现部分解耦合可以独自变化优点:(1)解除类维度绑合关系,将维度由笛卡尔积关系转成平铺关系(2)取代多继承,可便于对单独维度进行扩展缺点:(1)增加系统的理解和设计难度(2)需要清晰分析出独立变化的维度,并正确知晓其组合关系使用范围:一个类...原创 2019-08-13 23:39:26 · 297 阅读 · 0 评论 -
c++ 设计模式23讲之职责链模式
职责链模式定义:避免请求发送者与处理者耦合,将多个处理对象连成一条链,传递请求直到有一对象处理它优点:(1)链中对象不需知道链结构,由客户端创建链(2)请求对象只需维护后继引用,不需维持它对所有候选者引用(3)增加请求对象无需修改源代码,只需重新创建链缺点:(1)一个请求没有明确的接受者,可能会未被处理(2)较长的职责链设计多个处理对象,性能会受到一定影响(...原创 2019-08-19 12:28:00 · 156 阅读 · 0 评论 -
c++ 设计模式23讲之迭代器模式
c++的STL对容器有专门的迭代器(iterator)方法,不需自己实现细节直接调用即可迭代器模式定义:按照一种方法顺序访问一个聚合对象各个元素,不暴露该对象内部细节优点:(1)一个聚合对象可以有多种遍历方式(2)将数据保存和使用分离开,简化聚合类设计(3)增加抽象层增加新的聚合类和迭代器类都很方便缺点:(1)增加聚合类时也需要增加迭代器类(2)需要充分...原创 2019-08-19 13:09:26 · 153 阅读 · 0 评论 -
c++ 设计模式23讲之单例模式
单例模式定义:确保一个类只有一个实例,并提供全局访问点来访问这个实例优点:(1)内存中只存唯一实例可节省系统资源(2)用户可以严格控制实例缺点:(1)没有抽象层,违反了依赖倒置原则(可通过依赖注入来达到单例模式相同效果)(2)单例类职责过重,会违反单一原则(3)垃圾自动回收技术的语言,实例长时间不用会回收导致实例对象状态的丢失使用范围:需要单一实例的环境...原创 2019-08-09 18:49:53 · 198 阅读 · 0 评论 -
c++ 设计模式23讲之适配器模式
适配器模式定义:将一个类的接口转成客户希望的另一个接口优点:(1)将目标类和适配器类解耦合(2)提高类透明性和复用性(3)扩展灵活性和扩展性缺点:(1)适配类成为最耦合部分使用范围:已存在目标类和适配者类,还需知晓二者的转换关系。结构:实现110v适配目标220v的案例:实现:适配模式(adapter_pattern)属于结构型模式(s...原创 2019-08-09 23:14:09 · 145 阅读 · 0 评论 -
c++设计模式23讲之策略模式
策略模式定义:定义一系列算法,将每一个算法封装起来,能够通过接口继承来实现相互替换使得算法可以独立用户而变化优点:(1)满足开放封闭原则,对扩展开放对修改封闭,便于算法簇完善(2)将调用类和算法策略类解耦合,避免硬编码(3)调用者可灵活调用切换算法,改动量极少缺点:(1)客户端必须知道所有的算法类,并知晓各种算法类的调用前置条件(2)客户端每次只能使用一个算...原创 2019-08-10 16:13:42 · 97 阅读 · 0 评论 -
c++ 设计模式23讲之中介者模式
中介者模式定义:定义一个中介者对象来封装一系列对象交互优点:(1)简化对象间的交互,将多对多的网状关系变成1对多的星状关系(2)将对象间解耦合缺点:(1)大量的交互操作集中在中介者类,增加维护难度使用范围:系统间对象存在大量的相互引用关系,一个对象的状态改变需同步影响多个引用对象如:简历包括纸质、网页、APP三种方式,需要同步更新结构:mediato...原创 2019-08-19 23:22:24 · 137 阅读 · 0 评论 -
c++ 设计模式23讲之代理模式
代理模式定义:给莫个对象提供抽象占位符,由代理对象控制对源对象的访问优点:(1)协调调用者和被调用者降低系统耦合(2)可以在代理类增加额外的职责(3)起到远程代理、缓存代理、虚拟代理、保护代理等功能缺点:(1)增加中间代理类,增加代码复杂性和系统性能消耗(2)代理模式需新增额外工作使用范围:当客户端无法直接访问真实系统,或者访问需要增加其它前置方法如...原创 2019-08-16 23:34:42 · 128 阅读 · 0 评论