[Design pattern]: 设计模式相关系列
介绍
概念: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。
使用场景: 整个项目中只能创建一次对象的类.防止出现多个对象同时存在.如:数据库连接池,有多个就不能有效控制连接数了.
两种实现方式
第一种
单例类
1 | package note.com.singleton; |
记录,思考,成长,回忆
[Design pattern]: 设计模式相关系列
概念: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。
使用场景: 整个项目中只能创建一次对象的类.防止出现多个对象同时存在.如:数据库连接池,有多个就不能有效控制连接数了.
单例类
1 | package note.com.singleton; |
[Design pattern]: 设计模式相关系列
概念: 由对象来生成新的对象,而不是用类类型或其他方式.
使用场景: 需要对象克隆时
特点: 参数复制了,不用再初始化数据
原型模式在C++等其他语言中运用较广,JAVA有Object的clone方法,所以使用起来比较简单
首先创建对象实体 基类
1 | package note.com.bean; |
[Design pattern]: 设计模式相关系列
例子中需要构建的实体类代码省略
概念: 静态的,对生成对象进行封装的类
使用场景: 去掉代码中new的操作, 统一生成对象的入口
好处: 当对对象进行替换时,只需要修改工厂类中的代码即可,使类的实例化代码与逻辑代码分离.
工厂类
1 | package note.com.factory; |
[Design pattern]: 设计模式相关系列
本系列为本人2015年间通过Java语言对常见设计模式的通俗化代码实现, 通过关系图降低理解难度.
概念和思路参考: <Head First设计模式>,
基于面向对象思想(抽象,继承,封装,多态),不断对好的设计进行总结,最后形成理论体系.通俗的讲,设计模式就是解决问题的方式.
读<Head First设计模式> 中提到设计原则:
理解它的应用场景,解决了哪些问题,有什么好处,以及实现方式.
好的项目不是开始时就设计出来的,而是经过不断的修改完善而产生的.(这里并不代表开始就不用好好的设计)
接下来验证之前的现象和我得出的结论
参考
根据使用目的分类:创建型,结构型,行为型
创建型:主要重点在于对象的实例化过程
具体有:抽象工厂(Abstract factory),生成器(Builder),工厂方法(Factory method),原型(Prototype),单件(Singleton)
结构型:主要重点在于如何组合类之间的关系,构建强大的结构
具体有:适配器(Adapter),桥接(Bridge),组合(Composite),装饰(Decorator),外观(Facade),享元(FlyWeight),代理(Proxy)
行为型:主要在于类与类之间的行为通信
具体有:职责链(Chain of reSponsibility),命令(Command),解释器(Interpreter),迭代器(Iterator),中介者(Mediator),备忘录(Memento),观察者(Observer),状态(State),策略(Strategy),模板方法(Template method),访问者(Visitor)