写点什么

学习总结 - 第 3 周

用户头像
饶军
关注
发布于: 2020 年 06 月 22 日

本周老师讲解的是面向对象的设计模式,设计模式是一种可重复使用的解决方案。每一种模式都描述了一种问题的通用解决方案。

目前讲解过的设计模式有以下这些:

  1. 工厂模式

工厂模式主要包括 3 种,简单工厂模式、工厂方法模式、抽象工厂模式

简单工厂模式,通过一个工厂创建出不同的产品。

工厂方法模式,通过不同的工厂创建不同的产品。

抽象工厂模式,将多个工厂抽象出一个工厂接口,每个工厂可以创建不同的产品。

  1. 单例模式

单例模式可以保证产品单一实例。主要运用于只需要一个实例,减少实例创建和销毁的资源消耗,或者使用一个实例进行统一控制。单例模式主要包括 2 种,饿汉式、懒汉式

饿汉式,虚拟机启动时就创建。

懒汉式,使用时才创建,创建时需要加 synchronized 加锁,避免产生多个实例。

  1. 适配器模式

适配器模式用于将一个类的接口转换成客户希望的另一个接口。使得原本由于接口不兼容而不能工作的类可以一起工作。有类适配式(继承)和对象适配器(依赖,推荐)两种。

  1. 模板方法模式

模板方法模式由基类定义算法的轮廓和步骤,子类负责算法的具体实现。可将不变部分的算法封闭到基类实现,可变部分由子类进行扩展。

  1. 策略模式

策略模式用于在多种算法中选择一种,通过使用策略的人和策略的具体实现分离,策略对象可以自由组合和切换。

  1. 组合模式

组合模式是一种对象的结构模式,适用于树型结构。需要维护和展示部分-整体关系的场景,如树形菜单、文件或文件夹管理。

  1. 装饰器模式

装饰器模式在不改变接口的前提下,扩展现有对象的功能。装饰器是动态的扩展对象的功能,继续是静态的扩展对象的功能。装饰器可以任意组合。

  1. 代理模式

代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。包括静态代理和动态代理。

静态代理是由程序员创建或特定工具自动生成源代码,再对期编译。

动态代理是程序运行时通过反射机制动态创建的。

  1. 观察者模式

观察者模式定义对象的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。


实际开发中,常见的设计模式有 23 种,老师讲解的这 9 种应该是最经常使用的。这周,我也阅读了《设计之禅》这本书,从另一个角度去理解设计模式。目前还不能灵活使用,希望在以后的开发工作中能够多去思考,在什么场景下使用什么样的设计模式。使系统达到高内聚、低耦合。


用户头像

饶军

关注

还未添加个人签名 2020.03.23 加入

还未添加个人简介

评论

发布
暂无评论
学习总结 - 第3周