概述
有时候看源码的时候总是对代码中很多代码中的设计
感觉很不理解,但有觉得特别精到,后面了解到这是Java的设计模式,学习设计模式可以让自己对Java的编码与Java的设计思想有更多的感悟,对编码也会有很大的提升.
初步了解Java设计模式
设计模式的概念
使用设计模式是为了提高代码的重用性,使得代码更易理解并保证代码的可靠性.
在我们平常编写代码的过程,其实很多项目的建立都是在Copy,Copy,Copy的过程,我们使用Java中的API,将代码的编程变成了修房子中搬砖
的过程.So 低级的程序员又称为码农
.
一般可复用的系统一般有两大类:工具箱(一般是我们的Util包)
,Framework(框架)
.
我们在写Web的时候,我们不使用框架,其实我们就是在自己编写
底层
,Framework(框架)
就是已经写好底层代码只等我们进行调用.——— 出自一朋友对框架的认识
Java的设计模式贯彻的原理是:面向接口编程
,而不是面向实现.
目标原则:降低耦合
,增强灵活性
.
设计模式分类
常用设计模式有23中,按照特点分为三大类型:创建型
,结构型
,行为型
.
创建型
顾名思义,创建型模式是用来创建对象的模式,抽象了实例化的过程,帮助系统独立
于其关联对象的创建,组合和表达方式.创建型模式都用两个主要的功能:
- 将具体类中实现过程
封装
起来. - 隐藏类的实例是如何被创建和组织起来的.外界只知道接口,不知道如何实现的.
创造型模式的作用概况为两点:
- 封装创建逻辑,不仅仅是new一个对象那么简单.
- 封装创建逻辑变化,客户代码尽量不修改或者尽量少修改.
水果 fruit=new 苹果();
水果 fruit=new 梨子();
在其他地方需要用到fruit的地方,仍然不需要进行改变,这样可以让我们客户代码精良不修改或者尽量少修改.
常见的创造型设计模式有下面几种:
- 单例模式:一个类只有
一个实例
,并且自行实例化并向整个系统提供这个实例. - 工厂模式:在工厂方法模式中,工厂类成为了
抽象类
,实际的创建工作将由其具体子类来完成. - 抽象工厂模式:抽象工厂是所有工厂模式中最为抽象且最具有一般性的一种形态.
- 建造者模式:把构造对象实例的逻辑移动了类的外部,在类的外部定义了该类的结构逻辑.
- 原型模式:原型模式和工厂模式一样,对客户隐藏了对象创建工作的实现细节,但是原型模式是通过复制一个现有对象来生成新对象.
结构型
常用的结构性设计模式有以下几种:
- 代理模式
- 装饰模式
- 设配器模式
- 组合模式
- 桥梁模式
- 外观模式
- 享元模式
行为型
常见的行为型设计模式有以下几种:
- 模板方法模式
- 命令模式
- 责任链模式
- 策略模式
- 迭代器模式
- 中介者模式
- 观察者模式
- 备忘录模式
- 访问者模式
- 状态模式
- 解释器模式