写点什么

架构师训练营学习总结(第三周)

用户头像
战峰
关注
发布于: 2020 年 06 月 24 日

面向对象的设计模式



什么是设计模式

设计模式是一种问题的通用解决方案,且是可重复使用的。

在学习设计模式时,应从4个方面来学习:

a. 模式名称

b. 待解问题:模式适合解决的问题,即何时使用该模式

c. 解决方案:模式如何解决问题,模式的组成元素以及各元素之间的关系、职责等

d.结论:模式的利与弊



模式分类

功能划分:

创建型:对类的实例化进行抽象

结构型:将类或者对象结合在一起形成更大结构

行为型:对在不同对象之间划分责任和算法的抽象化

方式划分:

类模式:继承方式实现模式,静态

对象模式:组合方式实现模式,动态

简单工厂

待解问题:生产什么产品的决定权直接交到了客户手中,然后客户在输入自己的需求,得到最终的结果

解决方案:

1: 工厂类 :完成具体产品创建

2.抽象产品类:定义产品规范,描述产品特性和主要功能

3.具体产品类:实现抽象产品定义的接口,由工厂类创建



结论:

优点:

client不在依赖具体的产品实现

对client实现OCP--当增加具体产品时,不需要更改client代码

缺点:

对工厂类不符合OCP--当增加具体产品时,需要更改工厂代码



单例模式

待解问题:保证只产生一个实例

解决方案:

单例类



结论:

优点:

只有一个实例,避免频繁创建和销毁实例的带来的性能损失

当多个用户使用这一个实例时,便于统一控制

缺点



适配器模式

待解问题:需要用到的接口与我们希望的接口不一样

解决问题:

目标(Target)接口:当前系统业务所期待的接口,它可以是抽象类或接口。

适配者(Adaptee)类:它是被访问和适配的现存组件库中的组件接口。

适配器(Adapter)类:它是一个转换器,通过继承或引用适配者的对象,把适配者接口转换成目标接口,让客户按目标接口的格式访问适配者。



有类的适配模式和对象的适配器模式



结论:

优点

客户端通过适配器可以透明地调用目标接口。

复用了现存的类,程序员不需要修改原有代码而重用现有的适配者类。

将目标类和适配者类解耦,解决了目标类和适配者类接口不一致的问题。

缺点

对类适配器来说,更换适配器的实现过程比较复杂。



用户头像

战峰

关注

还未添加个人签名 2018.07.17 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营学习总结(第三周)