标签:回忆录 java 原则 对象 模式 改变 接口 设计模式
java设计模式
一.概念:在软件开发过程中的,经过验证的,在特定环境下重复发生特定问题的解决方案
二.原则:OOP七项原则
solid五项:功能的单一职责原则、开闭原则(便于扩展)、里氏替代原则(子类内代替父类)、接口隔离原则、依赖导致原则(依赖接口)
迪米特原则(最小知道原则)、合成复用原则(用组合而非继承)
三.分类 :
创建型模式:主要用于生成对象
结构型模式:组合类或对象以获得更大的结构
行为型模式:主要用于类或对象交换信息用
四.创建型模式
1.原型模式:以原来对象确定种类,并拷贝原对象以获得新对象。
2.单例模式:一个类只有一个实例,并提供一个全局访问点。一般用于读取配置,例外:spring实例一般就是它
常见:饿汉模式、懒汉模式(同步锁或带volatil的双重检测)、类级内部类(也叫静态内部类)、单例
3.工厂方法:创建对象的接口,让子类决定用那个类。同一类型产品。如:导入或导出多格式(pdf\excel\csv\txt)功能的前半段,从初始化的map<文件后缀, 具体实现>取对应实现类运行
4.抽象工厂:创建一系列相关或相互依赖的接口,而不用关注具体实现。主要是针对对象间有关联,如:汉堡 热+辣组合或冷+甜的组合
5.生成器模式:主要是将对象的创建过程与具体实现相分离
五.结构型模式
1.外观模式:提供高层接口,为子类的一系列接口提供统一的界面,方便操作。
2.桥接模式:主要是将抽象与具体实现分离。如:不同通信设备(手机、电脑)发送不同方式(qq\短信)的信息,这种交叉相关的情况。
3.组合模式:将树的结构以“整体-局部”d
4.装饰器模式:在不改变对象的前提下,改变对象的行为。java的io流就是使用这个的大户
5.适配器模式:是不能兼容的新方式能够使用原方式运作下去
6.代理模式:为其他对象提供代理以访问对象。mybatis中plugin的关键技术、接口与mapper关联技术
7.享元模式:使用共享技术支持大量细粒度的对象。字符常量池\guava的intern
六.行为型模式
1.观察者模式:提供一种一对多的关系结构,当一种对像状态改变,其他监察的对象及时收到通知并做出改变。
2.策略模式:主要是将不同的算法使用同一种方式使用。如:针对不同人群使用不同的打折策略
3.迭代器模式:提供一种统一的顺序访问聚合对象的方式。Collecton里面多得是
4.命令模式:主要是将不同的命令请求封装,使之可以相同方式处理
5.模板方法模式:主要是是将算法与实现相分离。
6.状态模式:在不改变类的对象的情况下,状态的改变,像改变的行为。
7.职责链模式:将请求处理绑定到一条链上,当请求到来时找合适处理。mybatis中插件拦截器
8.中介者模式:封装中介者用于对象的交流。
9.备忘录模式:在不改变类的对象的情况下,保存对象的状态在外部对象,当想要恢复时回退即可。
10.解释器模式:提供一种语言、语法,使用解析器解析这种语句。
11.访问者模式:不改变对象的前提下,可以改变对象的行为
标签:回忆录,
java,
原则,
对象,
模式,
改变,
接口,
设计模式
From: https://www.cnblogs.com/Phneas/p/18124104