设计模式是一套被反复使用,多数无人知晓,经过分类编目的优秀代码的设计经验的总结
目的是重用代码,是代码更容易理解,并保证代码的可靠性。
设计模式的要素
1 问题
描述何时使用模式,解释设计问题和问题存在的前因后果,如特定的设计问题,怎样用对象表示算法等
2 解决方案
描述了设计的组成部分,他们之间的相互关系和各自职责以及协作方式,
3,效果
效果用来描述设计模式的利弊,是衡量设计模式好坏的要素
4,举例
通过举例来说明特定的真实环境,有助于理解模式的使用方法和适应性。使更容易理解
设计模式的分类
1 创建型
用来创建对象的模式,抽象了实例化的过程,帮助一个系统独立于其关联对象的创建,组合,表现方式。
主要有两个功能
将系统所使用的具体类的信息封装起来
隐藏实例是如何被创建和组织的,只对外界提供公共接口
MyFactory factory = new MyFactory();
MyObject my = factory.create();
factory对象在整个应用中只被构造一次,改动量很小。
这种创建封装的变化,是的代码尽少的修改,不仅仅是new 一个对象。
创建型模式
单例模式
工厂方法模式
抽象工厂模式
建造者模式
原型模式
2 结构型
结构型模式讨论的是类和对象的结构。采用集成机制来组合接口或实现。或者通过组合一些对象实现新的功能,这些结构在某些地方有很大的相似性