Java23种设计模式总结笔记
设计模式是⼀套被反复使⽤、多⼈知晓的、经过分类编⽬的、代码设计经验的总结;为了可重⽤代码、使代码易理解易维护、并保证代码可靠性;设计3⼤原则:抽象依赖原则(OCP)、单向依赖原则(含对回调的学习)、最低依赖原则(合成复⽤原则、迪⽶特法则);
1、创建型模式;
1)创建型模式对类的实例化过程进⾏了抽象,能够将软件模块中对象的创建和对象的使⽤分离;为了使软件结构更加清晰,外界对于这些对象只需知道它们共同的接⼝,⽽不清楚其具体的实现细节,使系统的设计更加符合单⼀职责原则;
2)创建型模式在创建什么、由谁创建、何时创建等⽅⾯都为软件设计者提供了尽可能⼤的灵活性;隐藏了类的实例的创建细节,通过隐藏对象如何被创建和
组合在⼀起达到使整个系统独⽴的⽬的;
3)5种创建型模式:
(1)单例模式;只有⼀个实例;某个类只能有⼀个实例,提供⼀个全局的访问点;
(2)⼯⼚⽅法模式;由对象⼯⼚⽣成对象;创建⼯⼚接⼝,让⼦类决定实例化哪个类;(3)抽象⼯⼚模式;创建相关或依赖对象的家族,⽽⽆需明确指定具体类;
(4)建造者模式;封装⼀个复杂对象的构建过程,并可以按步骤构造;(5)原型模式;通过复制现有的实例来创建新的实例;
2、结构型模式;
1)描述如何将类或者对象结合在⼀起形成更⼤的结构,就像搭积⽊,可以通过简单积⽊的组合形成复杂的、功能更为强⼤的结构;
2)可分为类结构型模式和对象结构型模式;
(1)类结构型模式关⼼类的组合,由多个类可以组合成⼀个更⼤的系统,在类结构型模式中⼀般只存在继承关系和实现关系;
(2)对象结构型模式关⼼类于对象的组合,通过关联关系使得在⼀个类中定义另⼀个类的实例对象,然后通过该对象调⽤其⽅法;根据“合成复⽤原则”,在
系统中尽量使⽤关联关系来替代继承关系,因此⼤部分结构型模式都是对象结构型模式;
3)7种结构型模式:
(1)适配器模式;将⼀个类的⽅法接⼝转换成客户希望的另⼀个接⼝;(2)享元模式;通过共享技术有效控制⼤量细粒度对象;(3)代理模式;为其他对象提供⼀个代理以便控制这个对象的访问;
(4)桥接模式;将抽象部分和它的实现部分分离,使他们都可以独⽴的变化;(5)组合模式;将对象组合成树形结构表⽰部分-整体的层次结构;
(6)装饰模式;动态的给对象添加新的功能;(7)外观模式;对外提供⼀个统⼀的⽅法,来访问⼦系统中的⼀接⼝;
3、⾏为型模式;
1)⾏为型模式是对在不同的对象之间划分责任和算法的抽象化;
单例模式的几种实现方式2)⾏为型模式不仅仅关注类和对象的结构,⽽且重点关注它们之间的互相作⽤;
3)通过⾏为型模式,可以更加清晰地划分类与对象的职责,并研究系统在运⾏时实例对象之间的交互;在系统运⾏时,对象并不是孤⽴的,它们可以通过相互
通信与协作完成某些复杂功能,⼀个对象在运⾏时也将影响到其他对象的运⾏;
4)⾏为型模式分为类⾏为型模式和对象⾏为型模式2种:
(1)类⾏为型模式:类的⾏为型模式使⽤继承关系在⼏个类之间分配⾏为,类⾏为型模式主要通过多态等⽅式来分配⽗类与⼦类的职责;
(2)对象⾏为型模式:对象的⾏为型模式则使⽤对象的聚合关系来分配⾏为,对象⾏为型模式主要时通过对象关联等⽅式来分配两个或多个类的职责;根据
“合成复⽤原则”,系统中要尽量使⽤关联关系取代继承关系,因此⼤部分⾏为型模式都属于对象⾏为型模式;
5)11种⾏为型模式:
(1)责任链模式;将请求的发送者和接收者解耦,使多个对象都有处理这个请求的机会;(请求沿着对象组成的链传递)(2)备忘录模式;在不破坏封装的前提下,保持对象内部状态;
(3)命令⾏模式;将命令请求封装为⼀个对象,使得可以⽤不同的请求来进⾏参数化;(4)解释器模式;给定⼀个语⾔,定义它的⽂法的⼀种表⽰,并定义⼀个解释器;(5)迭代器模式;⼀种遍历访问聚合对象中各个元素的⽅法,不暴露该对象的内部结构;
(6)中介者模式;⽤⼀个中介对象来封装⼀系列的对象交互;(7)访问者模式;在不改变数据结构的前提下,增加作⽤于⼀组对象元素的新功
能;(8)观察者模式;对象间⼀对多的依赖关系,可实现延迟加载,对象发⽣某种变化才进⾏对应操作;
(9)状态模式;允许⼀个对象在其内部状态改变时改变它的⾏为;(10)策略模式;定义⼀系列算法,把他们封装起来,并且使他们可以互相替换;(11)模板⽅法模式;定义⼀个算法结构,⽽将⼀些步骤延迟到⼦类实现;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论