09 2021 档案
摘要:Composite 组合模式 将对象组成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组和对象的使用具有一致性(稳定)。 解决什么问题 软件在某些情况下,客户代码过多地依赖于对象容器负载的内部实现结构,对象容器内部实现结构(而非抽象接口)的变化将引起客户代码(invo
阅读全文
摘要:State 状态模式 解决什么问题 在软件构建过程中,某些对象的状态如果改变,其行为也会随之而发生改变,比如文档处于只读状态,其支持的行为和读写状态支持的行为就可能完全不同。 如何在运行时根据对象的状态来透明地更改对象的行为?而不会为对象操作和状态转化之间引入紧耦合。 结构 要点总结 State模式
阅读全文
摘要:Facade 门面模式 为子系统中的一组接口提供一个一致(稳定)的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用(复用)。 解决什么问题 解决系统间耦合的问题 下图中方案A的问题在于组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种
阅读全文
摘要:Singleton 单件模式 保证一个类仅有一个实例,并提供一个该实例的全局访问点。 解决什么问题 在软件系统中,经常有这样一些特殊的类,必须保证他们在系统中只存在一个实例,才能保证它们逻辑的正确性、以及良好的效率。 如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例? 这应该是类设计者的责
阅读全文
摘要:Factory Method 工厂方法 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使得一个类的实例化延迟(目的:解耦,手段:虚函数)到子类。 解决什么问题 在软件系统中,经常面临着创建对象的工作;由于需求的变化,需要创建的对象的具体类型经常变化。 如何应对这种
阅读全文
摘要:Decorator 装饰 动态(组合)地给一个对象增加一些额外的职责。就增加功能而言,Decorator模式比生成子类(继承)更为灵活(消除重复代码&减少子类个数)。 解决什么问题 在某些情况下我们可能会”过度地使用继承来扩展对象的功能“,由于继承为类型引入的静态特质(继承自基类的东西无法改变,被绑
阅读全文
摘要:Template Method 定义一个操作中的算法的骨架(稳定),而将一些步骤的实现延迟(变化)到子类中。Template Method使得子类可以不改变(复用)一个算法的结构即可重定义(override重写)该算法的某些特定步骤。 早绑定与晚绑定 区分稳定与变化 要点总结 非常基础的设计模式 最
阅读全文
摘要:Author:wangml Date:20210904 参考课程:C++设计模式_哔哩哔哩_bilibili 在面对重复出现的问题,使用一套可复用的解决方案,避免重复劳动。 目标 理解松耦合设计思想 掌握面向对象设计原则 掌握重构技法改善设计 掌握GOF核心设计模式 分解与抽象 以实现一个画图窗口为
阅读全文
摘要:MySQL的优化 参考:这些程序员最应该知道的MySQL知识!可惜之前没人告诉我…执行计划/索引/数据结构/设计原则/优化/锁/树/hash表/MVCC/优化..._哔哩哔哩_bilibili 更好的阅读效果可以看这里:GitHub 索引 索引是帮助MySQL高效获取数据的排好序的数据结构 索引数据
阅读全文

浙公网安备 33010602011771号