摘要:
# 外观模式(Facade) ## 1、作用 (1)、将各个子系统的接口汇聚在一起,定义一个统一的接口方便客户使用,满足“迪米特法则”,即客户不需要了解子系统,只需要知道Facade模式封装的类即可以使用所有子系统。 (2)、隔离用户和子系统,将用户与子系统解耦,当子系统有修改是,顶多修改Facad 阅读全文
摘要:
# 模板模式(Template) ## 1、作用 做一件是的方法很多,但做这件都可以归纳为几个步骤。这个时候可以使用模板模式,在模板类中,定义做事的步骤,将多种实现做事的细节延迟到子类中去实现。 即:定义一个操作中的算法的骨架(模板函数),而将一些步骤延迟到子类中(基本函数)。模板方法使得子类可以不 阅读全文
摘要:
# 策略模式(Strategy) ## 1、作用 策略模式的主要目的主要是将算法的定义(strategy类)和使用分开(context类),也就是将算法的行为和环境分开,将算法的定义放在专门的策略类中,每一个策略类封装一个实现算法。而使用算法的环境中针对抽象策略编程,而不是针对实现编程,符合依赖倒置 阅读全文
摘要:
# 代理模式(Proxy) ## 1、作用 代理模式是包装一个对象,控制对它的访问,实现逻辑合实现的解耦。 ## 2、实现方式 代理模式跟装饰器模式、适配器模式、外观模式都有类似的地方,都通过关联关系封装了其他类型的对象,但是使用的目的不一样。 代理:包装一个对象,控制对它的访问。 装饰者:包装另一 阅读全文
摘要:
# 享元模式(flyweight) ## 1、作用 一些对象在使用一次后就可以销毁了,比如画一个圈,这个对象调用draw()函数后,这个对象就没有作用,除非再次画相同的圈。但是在应用中需要画很多圈,如果每次画一次圈都构造一个对象,这样内存消耗很多,构造销毁也很费时,这个时候就可以考虑一下享元模式,这 阅读全文
摘要:
# 装饰器模式(Decorator) ## 1、作用 引入一个设计原则:类应该对扩展开发,对修改关闭。简单的说,就是允许我们的我们的类进行扩展,在不修改现有代码的情况 下,适应新的行为改变。 当实现好的类有了新的需求,不考虑重用的话,会直接修改(现在写代码都这样,没有满足开闭原则的修改关闭原则),如 阅读全文
摘要:
# 组合模式(composite) ## 1、作用 在树型结构的模型中,有两种节点:叶子节点、中间节点,其中叶子节点不能再接节点,中间节点可以接叶子节点和中间节点。这个模型用组合模式能够很好的实现,在组合模式中分为3个类:component(抽象构件)、composite(容器构件)、leaf(叶子 阅读全文
摘要:
# 桥接模式 ## 1 作用 当类的模型有两个或多个维度的时候,如果两个变化维度用同一个类使用继承方式实现会变得很复杂(冗余代码很多),不易于维护和扩展(继承关系是一种强耦合关系),为了降低耦合关系,提高维护性和可扩展性,可以将两个变化维度的通过两个类(abstruction、implementor 阅读全文
摘要:
# 适配器模式 ## 1 作用 名字很形象的说出了模式的作用:当有一个需求需要Target的接口,然后有一个现成的Adaptee接口,为了让Adaptee接口匹配上Target接口,就需要使用Adapter,在Adapter中将Adaptee适配Target。 Adapter和Bridge模式都使用 阅读全文
摘要:
# UML类图 ## 1、UML类图中的类 UML类图中的类包含三部分:类名、成员变量、成员函数 ![img](https://img2023.cnblogs.com/blog/898240/202309/898240-20230907175510591-854376609.png) 成员的的访问员 阅读全文