架构师训练营 - 第三章 - 总结

发布于: 2020 年 06 月 24 日

本章的主要内容是对设计模式的讲解。

概述

设计模式都是行业内对特定软件开发问题的解决套路总结,掌握设计模式对于软件解耦有重要的意义。

所有针对一类软件开发问题所总结的可复用的解决方案,都可以称得上是设计模式。常规开发人员公认的设计模式有23种。

设计模式

设计模式分为创建模式、结构模式和行为模式。

创建模式

创建模式将对象的创建和使用分开,使用者不需要关心对象的创建过程,降低对象使用时候的复杂性。

公认的创建模式有单例模式、原型模式、工厂方法模式、抽象工厂模式、建造者模式。

单例模式:

该模式要求一个类只能创建一个对象。这种设计模式一般应用于系统中的公共共享对象,如配置管理对象,数据库连接池对象等,这些业务场景强调类只能被实例化一次,系统各个位置获取到的该类的对象都是同一份对象的引用。

开发框架中的对象容器所管理的对象一般都是单例模式产生的。

原型模式:

该模式用于创建比较复杂,但是对象复制需求比较多的情况。

原型模式是基于一个原型类clone出新对象的创建模式。当对象的创建比较复杂的时候,频繁多次的创建会比较消耗系统资源,这个时候使用复制的方式来创建对象,可以让使用者不用关心创建的复杂过程,方便快捷。

外观模式:

外观模式是将一组可以归为一个子系统的类,通过一个统一的外观类调用。

一个大的系统一般分为很多小模块,一开始模块操作比较单一。

比如一个简单的电商系统,包含订单子系统,一开始订单子系统比较简单,和订单子系统交互时可能是直接操作具体的订单子系统的模块,比如直接调用库存模块增加库存。

随着系统越来越复杂,订单子系统越来越复杂,和订单子系统交互需要处理的内容也越来越多,而且订单子系统内部的模块变化会引起各个客户端模块的修改。

这个时候,可以通过添加一个统一的订单外观类,外接直接调用统一的订单外观类,不需要关心订单内部的逻辑变化。这样可以减少客户端类与订单子系统的交互,符合迪米特原则,客户端最少的知道订单类的细节。

在实际工作中,这种方式可以用于对一个大的模块进行重构的时候,将子系统的调用汇总到一个接口,转移客户端的依赖到新的接口,进而客户端的依赖全部转移到新接口后,还可以统一将子系统迁移到独立的服务,进而实现系统服务化。

结构模式

结构模式描述了如何将类或者对象组织成更大的结构。结构模式可以再分为基于类继承的结构模式和基于对象组合的结构模式。

公认的结构模式有代理模式、适配器模式、桥接模式、装饰模式、外观模式、享元模式、组合模式。

行为模式

行为模式用于描述程序在运行时复杂的流程控制。

公认的行为模式有模板方法模式、策略模式、命令模式、职责链模式、状态模式、观察者模式、中介者模式、迭代器模式、访问者模式、 备忘录模式、计时器模式。

时间仓促,最近项目开发进度紧张,暂时记录这么多,项目上线后抽时间把各个模式解决的问题场景总结下,补齐这个缺陷。

用户头像

而立

关注

还未添加个人签名 2018.01.25 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营-第三章-总结