设计模式学习总结

自己学习总结,很浅显,不喜勿喷啊 :)


1.什么是设计模式?

在《建筑的永恒之道》里这样描述:模式是一条由三个部分组成的通用规则:它表示了一个特定环境、一类问题和一个解决方案之间的关系。每一个模式描述了一个不断重复发生的问题,以及该问题解决方案的核心设计。
设计模式的根本目的在于代码重用易于扩展

2.软件设计模式的分类?

2.1. 创建型

创建对象时,不再由我们直接实例化对象;而是根据特定场景,由程序来确定创建对象的方式,从而保证更大的性能、更好的架构优势。创建型模式主要有简单工厂模式(并不是23种设计模式之一)、工厂方法、抽象工厂模式、单例模式、生成器模式和原型模式。

2.2. 结构型

用于帮助将多个对象组织成更大的结构。结构型模式主要有适配器模式adapter、桥接模式bridge、组合器模式component、装饰器模式decorator、门面模式、亨元模式flyweight和代理模式proxy。

2.3. 行为型

用于帮助系统间各对象的通信,以及如何控制复杂系统中流程。行为型模式主要有命令模式command、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式state、策略模式、模板模式和访问者模式。

3. 常见设计模式介绍

3.1. 单例模式(singleton)

单例模式主要有如下两个优势:
1) 减少创建Java实例所带来的系统开销;实现共享同一实例对象的引用来持有对象
(例如jdk中的Canlendar日历对象;)
2) 便于系统跟踪单个Java实例的生命周期、实例状态等。

3.2. 简单工厂(StaticFactory Method)

工厂方法模式:该模型一共包括三种模式:

1.简单工厂模式
将具体产品抽象为抽象产品类(或接口),在工厂中通过传入不同的参数类型(类似switch…case…),来创建不同的具体产品对象;
优点:使用场景简单,对指定有限数量的具体产品易于使用方便;
缺点:也很明显,就是在扩展新增产品类型时候,不仅要添加抽象产品类的具体穿品实现类,还要同时在工厂类中添加switch…case条件选项;(推荐使用工厂方法模式)

扫描二维码关注公众号,回复: 1471244 查看本文章

2.工厂方法模式
-.对简单工厂的改进,适合于更复杂的场景;
增加了对工厂的抽象,使得不同的工厂可以生产不同的产品,方便扩展;但是不能应对产品簇和产品等级,这样就需要使用抽象工厂模式

3.抽象工厂模式
抽象工厂模式中真正是可以实现对不同的工厂生产产品簇和一系类不同类型的产品系列的;

《今天先写这么多了,后期补充!!》

猜你喜欢

转载自blog.csdn.net/fct2001140269/article/details/80034532
今日推荐