目录
一:设计模式的重要性
1.软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)
的各种问题,所提出的
解决方案
。这个术语是由
埃里希·伽玛
(
Erich Gamma
)等人
在
1990
年代
从建筑设计领域引入到计算机科学的
。
2.如果项目开发完后,原来程序员离职,你接手维护该项目怎么办? (
维护性[可读性、
规范性]
)。
3.设计模式在软件中哪里?
面向对象(oo)=>功能模块[设计模式+算法(数据结构)]=>框
架[使用到多种设计模式]=>架构 [服务器集群]
4.如果想成为合格软件工程师
,那就花时间来研究下设计模式是非常必要的
.
二:设计模式的目的
1. 编写软件过程中,程序员面临着来自
耦合性
,
内聚性
以及
可维护性
,
可扩展性
,
重
用性
,
灵活性
等多方面的挑战。
2. 设计模式是为了让
程序
(
软件
)
,具有更好的:
1) 代码重用性 (即:相同功能的代码,不用多次编写)
2) 可读性 (
即:编程规范性
,
便于其他程序员的阅读和理解
)
3) 可扩展性 (
即:当需要增加新的功能时,非常的方便,称为可维护
)
4) 可靠性 (
即:当我们增加新的功能后,对原来的功能没有影响
)
5) 使程序呈现
高内聚
,
低耦合
的特性。
三:掌握设计模式的层次
1) 第1
层:刚开始学编程不久,听说过什么是设计模式。
2) 第2
层:有很长时间的编程经验,自己写了很多代码,其中用到了设计模式,但是自己却不知 道。
3) 第3
层:学习过了设计模式,发现自己已经在使用了,并且发现了一些新的模式挺好用的。
4) 第4
层:阅读了很多别人写的源码和框架,在其中看到别人设计模式,并且能够领会设计模式的 精妙和带来的好
处。
5) 第5
层:代码写着写着,自己都没有意识到使用了设计模式,并且熟练的写了出来。
四:设计模式介绍
1) 设计模式是程序员在面对同类软件工程设计问题所
总结出来的有用的经验
,模式不是代码,而是
某类问题的通用解决方案
,设计模式(Design pattern
)代表了
最佳的实践
。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
2) 设计模式的本质
提高软件的维护性
,
通用性
和
扩展性
,并
降低软件的复杂度
。
3)
<<设计模式>>
是经典的书,作者是
Erich Gamma
、
Richard Helm
、
Ralph Johnson 和
John Vlissides Design
(俗称 “四人组
GOF
”)。
4) 设计模式并
不局限于某种语言
,java
,
php
,
c++
都有设计模式。
五:设计模式类型
1. 设计模式分为三种类型,共23种
1)
创建型模式
:
单例模式
、抽象工厂模式、原型模式、建造者模式、
工厂模式
。
2)
结构型模式
:适配器模式、桥接模式、
装饰模式
、组合模式、外观模式、享元模式、
代理模式
。
3)
行为型模式
:模版方法模式、命令模式、访问者模式、迭代器模式、
观察者模式
、中介者模式、备忘录模式、解释器模式(
Interpreter
模式)、状态模式、策略模式、职责链模式(
责任链模式
)
。