摘要: 设法站在更高的角度去看问题,才能更注重时效,做出明智的妥协和有见识的决策。 1、我的源码让猫吃了 承诺前分析风险;同意后尽力去做; 犯错时诚实的承认它,并设法给出解决方案,不要找蹩脚的接口; 当你找理由和借口时,想想你的辩解对对方来说是合理的还是愚蠢的。 2、软件的熵 不要容忍破窗户; 不要成为第一 阅读全文
posted @ 2020-08-01 00:00 吉尔加斯 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 定义: 为了将复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。应该考虑建造者模式。 即对复杂的构建过程和细节进行封装,使用户能更简洁的创建需要的对象。 结构图: Product:最终要生成的产品类,就是之前你需要一个个去设置构造函数的那个初始类。就是下面代码例子中的电脑类 Bui 阅读全文
posted @ 2020-07-29 00:59 吉尔加斯 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 定义: 为了系统中的一组接口提供一个一致的界面;定义了一个高层接口,使得子系统更加容易使用。 即对底层逻辑和接口进行一次整合封装。以至于外部能更容易的使用。 结构图: 代码: //子系统的四个类 class SubSystemOne { void MethodOne(); } class SubSy 阅读全文
posted @ 2020-07-27 23:32 吉尔加斯 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 定义: 模板模式提供一个代码复用平台。将变与不变区分开,将不变的部分抽取出来定义在父类中,比如算法骨架,一些公共的,固定实现。这些不变的被封闭起来,尽量不去修改他们;通过子类实现可变化的步骤。 结构图: 代码: //AbstractClass抽象类 class AbstractClass { pub 阅读全文
posted @ 2020-07-25 16:42 吉尔加斯 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 定义: 从一个对象在创建另外一个可定制的对象,而且不需知道任何创建的细节。 和重写拷贝构造函数一样,能简单的clong一个对象。注意深浅拷贝。 结构图: 代码: //抽象原型类,定义clong接口 class Prototype { public: Prototype Clong(); } //具体 阅读全文
posted @ 2020-07-25 14:31 吉尔加斯 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 定义: 定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 相比于简单工厂消去了内部判断逻辑,遵守了开放封闭原则。但是代码量和逻辑复杂度更高了。 结构图: 代码:水果工厂 (父类)水果类: Class Fruit { 。。。 } (子类)苹果类: Class 阅读全文
posted @ 2020-07-22 23:41 吉尔加斯 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 定义: 为其他对象提供一种代理以控制对这个对象的访问。 其实就是在访问对象时引入一定程度的间接性,因为这种间接性,可以附加许多用途。 结构图: 代码: //Subject 类 class Subject { //对外暴露的共用接口 public: void Request(); } //RealSu 阅读全文
posted @ 2020-07-19 23:36 吉尔加斯 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 定义: 动态的给一个对象增加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 就是以组合的方式动态的为对象添加功能,比起继承,更符合开闭原则。 结构图: 代码: //Component类 class Component { public: //抽象核心职责,装饰器需要在这个职责基础上增加 阅读全文
posted @ 2020-07-19 23:00 吉尔加斯 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 单一职责原则: 就一个类而言,应该仅有一个引起他变化的原因。 目的是为了尽可能的解耦。 例子: 如果是一个鸟类,应该只有鸟的变化是改变这个类的原因,天气和猪的变化不应该是改变这个类的原因; 如果是一个鸟的脚类,应该只有鸟的脚的变化是改变这个类的原因,鸟的嘴和猪的变化不应该是改变这个类的原因; 开放- 阅读全文
posted @ 2020-07-17 23:02 吉尔加斯 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 策略模式: 它定义了算法家族,分别封装起来,让它们之间可以互相替换。此模式让算法的变化,不会影响到使用算法的客户。 结构图如下: 代码: //算法抽象类 class Strategy { //定义支持的算法接口 public viod Algorithminterface(); } //算法子类A 阅读全文
posted @ 2020-07-17 22:27 吉尔加斯 阅读(184) 评论(0) 推荐(0) 编辑