摘要:
代理模式 代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。 简单得说,代理,就是自己委托代理者去帮自己完成某项工作。类似于中介得存在。 在网上找得代理模式适用场景: 1. 当客户端对象需要访问远程主机中的对象时可以使用远程代理。 2. 当需要用一个消耗资源较少的对象来代表一个消 阅读全文
摘要:
装饰模式 装饰模式,动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活. 装饰模式就是为了给已有功能动态添加更多功能。 它解决的主要问题就是: 之前的代码如果要给ConcretePerson加功能,就要在这个类里添加对应的成员变量或者新的字段,新的逻辑。这样不仅违反了开闭 阅读全文
摘要:
单一职责原则 单一职责原则 ,就一个类而言,应该仅有一个引起它变化的原因。 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。 软件设计真正要做的许多内容,就是发现职责并 阅读全文
摘要:
策略模式 策略模式:定义了 算法家族 ,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。 前面写了简单工厂模式,其主旨是通过父类衍生出各种产品子类,再通过多态的方式生产各种产品。 但如果说出现的产品过多,就需要写大量的产品子类。这是无可避免的。 而策略模式,从类图 阅读全文
摘要:
简单工厂 简单工厂模式又叫 静态工厂方法 模式,由名字可见,有一个 工厂 ,还有一个 静态 。主要抓住这两点。 首先工厂的意思就是,可以由工厂生产各种产品。所以我需要一个工厂类。 并且还需要各个产品类,并且该产品理应有共同的父类。使用多态的形式进行调用产品里的方法。 为什么需要共同父类?想想如果没有 阅读全文
摘要:
Github这个网站作为程序猿应该都知道,不过对于我或者大部分新手程序员来说,并没能很好的利用该平台。 我想搜一个开源项目,开开高手们的代码,学习学习,可是总是搜不来合适的。一搜就是一堆,如同大海捞针。 今天看了羊哥的一视频,讲解了如何在Github上找开源项目,做个笔记,学习一下。 附上链接:ht 阅读全文
摘要:
反思:我作为一个非科班的程序员,先后学习了C、C++两门语言,C是面向过程的,C++准确来说只能是半面向对象的语言。在之前的学习中确实进入了C++就是C加class的误区,并没有悟到面向对象的道。在项目中想要以合理的方式融入SDK,最后还是失败了。觉得以前学的设计模式并没有真的掌握,只是为了找工作而 阅读全文
摘要:
常量指针: 为什么这么叫,怎么记? 看上面的格式,从左向右依次,先是const常量,再是int 指针。所以是常量指针。 指针常量: 为什么这么叫,怎么记? 同上,从左向右依次。 上述介绍完是个啥,下面进行详细解释! 首先先了解 常量 和 变量 的区别: 变量 上图可以看出,同一变量不会因为值的变化而 阅读全文
摘要:
最近遇到一个问题,类的循环引用。就是class A定义了class B的对象,class B中也定义了class A的对象。 错误的构造方式:采用直接new的方式,就会产生死循环的问题 讲真的,这样子写一看就知道有问题。但麻烦的是你还不知道怎么去改它。 下面来说说,这个问题如何优雅的解决。 正确的构 阅读全文
摘要:
其实最简单,最粗暴的方式就是将 include "xx.h"写到.h文件中。 例如: 我想要在A文件中引入B文件提供的方法函数或对象。那么我就将 include "B.h"写在 A.h 里。毕竟就算你 A.cpp 文件要用B里的方法,你必然会先将 include "A.h" 放在 A.cpp 里。 阅读全文