zoukankan      html  css  js  c++  java
  • 一句话设计模式——快速掌握23种设计模式的核心思想(上)

    这篇文章不适合深入学习设计模式,因为没有代码,没有模式扩展。

    正确的使用方式:1. 初学者在深入学习之前先留下一个粗略的印象。2. 已经系统学习了设计模式的人快速回顾。

    简单工厂模式

    核心思想:将类的创建过程与对象的使用过程分离。

    具体实现过程:定义一个工厂,根据参数(通常是字符串)的不同返回不同类的实例。因为我们希望将工厂生产的对象可以使用相同的方式处理,所以产品类类通常会实现相同的接口。

    工厂方法模式

    核心思想:简单工厂基础上,通过实例化不同的工厂,来创建不同的类。

    具体实现过程:在简单工厂的基础上,对工厂进行抽象,将类的创建过程延迟到工厂的子类中完成。这样做的好处是当需要新增加一个新的产品类的时候,只需要新增一个“具体的工厂”就可以,而不需要像简单工厂一样,修改工厂类的具体实现。符合“开闭原则”。

    抽象工厂模式

    核心思想:工厂方法基础上,让一个工厂生产一类对象。

    具体实现过程:在工厂方法的基础上,在一个具体工厂中实现生产不同产品的方法。可以达到方便生产一个“产品簇”的目的。

    建造者模式

    核心思想:定义一个建造过程,具体的建造放在子类当中,这样可以使用相同的建造过程构造不同的实例。

    原型模式

    核心思想:使用Object类的clone方法,快速复制对象。

    单例模式

    核心思想:让一个类自身持有其实例的成员变量,声明为staticprivate,来达到系统中只有一个实例的目的。

     

    具体实现过程:为了确保全系统只有一个实例,所以不可以让用户自己创建,所以这个类需要一个private的构造函数。还需要一个getInstance()方法用来获得这个唯一的实例,因为需要在系统的每一处都能获得,所以这个方法应该是public的。因为调用的getInstance()的目的是获取实例,只能在类上面调用,所以getInstance()应该是static的。

    适配器模式

    核心思想:创建一个适配器类可以同时具备有现有类的行为,和期望的接口。

    具体实现过程:分为两种情况

    1. 类适配器:适配器类实现期望的接口,继承现有的类已获得他的行为(方法)。
    2. 对象适配器:适配器类实现期望的接口,并持有现有类的实例,通过实例调用方法。 目的都是相同的。

    桥接模式

    核心思想:使用组合或者聚合的方式处理抽象和实现之间的联系,让具体的实现在不同维度上变化

    组合模式

    核心思想:让具体类和这些类的容器实现同一个接口,用户调用到容器类时使用递归调用,不需要区分这两者的区别。

    外观模式

    核心思想:在外观类内实现具体的操作,用户只需要和外观类打交道,屏蔽方法调用细节。

    享元模式

    核心思想:建一个对象池,复用需要在系统中多次出现的对象。

    装饰模式

    核心思想:,装饰器和被装饰的对象有相同的接口,装饰器在使用时获得被装饰的对象,为其增加新的操作。

    具体实现过程:不论是具体的组件,和装饰过后的组件,都希望可以用相同过的方式使用,所以实现同一个接口。装饰类需要持有一个具体组件的实例,才能调用他的方法,所以需要一个聚合关联。

    代理模式

    核心思想:代理类持有具体实现类的实例,将在代理类上的操作转化为实例上方法的调用。

    (原文地址:https://www.jianshu.com/p/dd2bbbbcddab 。 尊重原创,感谢作者!)

  • 相关阅读:
    C++ 编译时字符串加密
    c#自动修复缺损和不规范的html
    C#下载网络资源(网页或文件)
    yum install 命令下载安装离线包
    C# Sql Server 数据库 传递 表值参数
    cximage 裁剪图片并背景透明
    centos 7.5 编译并运行 opencv 4.5.1 c++
    c++ freeimage 指定颜色透明
    c++ string 大小写转换
    opencv 裁剪图像
  • 原文地址:https://www.cnblogs.com/javalyy/p/8857013.html
Copyright © 2011-2022 走看看