设计模式
1、设计模式是人们在面对同类型软件工程设计问题所总结出的一些有用经验。模式不是代码,而是某类问题的通用设计解决方案
2、学习设计模式最好的方式:在你的设计和以往的工程里寻找何处可以使用它们
数据与后端架构提升之路
没人会把我们变的越来越好,时间也只是陪衬。支撑我们变的越来越好的是我们自己不断进阶的才华,修养,品行以及不断的反思和修正
展开
-
深入Java设计模式之代理模式
代理模式的分类 我们有多种不同的方式来实现代理。如果按照代理创建的时期来进行分类的话, 可以分为两种:静态代理、动态代理。静态代理是由程序员创建或特定工具自动生成源代码,在对其编译。在程序员运行之前,代理类.class文件就已经被创建了。动态代理是在程序运行时通过反射机制动态创建的。静态代理优点:可以做到在符合开闭原则的情况下对目标对象进行功能扩展。缺点:我们得为每一个服务都得创建代理类,工作量太大,不易管理。同时接口一旦发生改变,代理类也得相应修改。动态代理...原创 2020-11-15 11:42:45 · 266 阅读 · 0 评论 -
深入Java设计模式之组合模式
主要解决:它在我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。何时使用:1、您想表示对象的部分-整体层次结构(树形结构)。 2、您希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。如何解决:树枝和叶子实现统一接口,树枝内部组合该接口。主要角色:(1)组合部件(Component):它是一个抽象接口。这里表示树根School(2)叶子(Leaf):在组合中表示子节点对象.原创 2020-06-29 14:25:21 · 289 阅读 · 0 评论 -
深入Java设计模式之访问者模式
访问者模式介绍最复杂的设计模式,并且使用频率不高,《设计模式》的作者评价为:大多情况下,你不需要使用访问者模式,但是一旦需要使用它时,那就真的需要使用了。访问者模式是一种将数据操作和数据结构分离的设计模式。(觉得太抽象,可以看下面的例子)。访问者模式的使用场景对象结构比较稳定,但经常需要在此对象结构上定义新的操作。 需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免这些操作“污染”这些对象的类,也不希望在增加新操作时修改这些类。角色介绍Visitor:接口或者抽象类原创 2020-06-28 21:24:01 · 287 阅读 · 0 评论 -
深入Java设计模式之释器模式
介绍意图:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。主要解决:对于一些固定文法构建一个解释句子的解释器。何时使用:如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。如何解决:构建语法树,定义终结符与非终结符。关键代码:构建环境类,包含解释器之外的一些全局信息,一般是 HashMap。应用实例:编译器、运算表达式计算。优点原创 2020-06-26 22:40:25 · 263 阅读 · 0 评论 -
深入Java设计模式之中介模式
中介模式是用来解决多个对象显示相互调用造成的耦合,使用一个中介来使耦合松散,减少类之间的依赖原创 2020-06-16 15:49:43 · 345 阅读 · 0 评论 -
深入Java设计模式之适配器模式
适配器模式概念适配器模式(Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。在适配器模式中,我们通过增加一个新的适配器类来解决接口不兼容的问题,使得原本没有任何关系的类可以协同工作。根据适配器类与适配者类的关系不同,适配器模式可分为对象适配器和类适配器两种,在对象适配器模式中,适配器与适配者之间是关联关系;在类适配器模式中,适配器与适配者之间是继承原创 2020-06-15 21:51:26 · 349 阅读 · 1 评论 -
深入Java设计模式之装饰模式
装饰模式在Java中的运用运用实例:MM们要过生日了 ,怎么也得表示下吧。最起码先送个蛋糕。蛋糕多种多样了。巧克力,冰淇淋,奶油等等。这都是基本的了 ,再加点额外的装饰,如蛋糕里放点花。放贺卡。放点干果吃着更香等等。看看我是如何设计的。 我想既然是蛋糕,那我就把蛋糕作为一个抽象类,剩下的蛋糕子类型来继承它,每个子类都有吃该蛋糕的感觉 ^_^,看起来真的不错。蛋糕的子类分别是奶酪蛋糕,巧克力蛋糕,冰淇淋蛋糕,插花的冰淇淋蛋糕,放贺卡的冰淇淋蛋糕。某个MM的生日蛋糕喜欢带花的冰淇...原创 2020-06-08 12:06:13 · 365 阅读 · 0 评论 -
深入Java设计模式之桥接模式
桥接模式原理系统有多维角度分类时,而每一种分类又有可能变化,考虑使用桥接模式 桥接的目的是分离抽象与实现,使抽象和实现可以独立变化。使用桥梁模式的场景原创 2020-06-01 16:49:34 · 363 阅读 · 0 评论 -
深入Java设计模式之责任链模式
责任链模式原理如果有多个对象都有机会处理请求,责任链可使请求的发送者和接收者解耦,请求沿着责任链传递,直到有一个对象处理了它为止。责任链模式优缺点优点: 将请求的发送者和接收者解耦,使多个对象都有机会处理这个请求 可以简化对象,因为它无须知道链的结构 可以动态地增加或删减处理请求的链结构缺点: 请求从链的开头进行遍历,对性能有一定的损耗 并不保证请求一定被处理适用场合有多个对象可以处理一个请求 不明确接收者的情况 有序、无序链,线型、树形、环形链责任链...原创 2020-06-01 12:00:59 · 407 阅读 · 0 评论 -
深入Java设计模式之策略模式
package com.lzhsite.technology.designPattern.strategy.LogTemplateDemo;public class ClientForLogTemplateDemo{ public static void main(String[] args) { LogContext logContext = new LogContext(); logContext.log("记录日志"); lo...原创 2020-05-28 18:52:24 · 293 阅读 · 0 评论 -
深入Java设计模式之命令模式
适用场景:1.系统需要将请求调用者和请求接收者解耦,使得调用者和接收者不直接交互。2.系统需要在不同的时间指定请求、将请求排队和执行请求。3.系统需要支持命令的撤销(Undo)操作和恢复(Redo)操作。4.系统需要将一组操作组合在一起,即支持宏命令。优点1.降低对象之间的耦合度。2.新的命令可以很容易地加入到系统中。3.可以比较容易地设计一个组合命令。4.调用同一方法实现不同的功能缺点使用命令模式可能会导致某些系统有过多的具体命令类。因为针对每一个命...原创 2020-05-25 20:11:28 · 333 阅读 · 0 评论 -
深入Java设计模式之原型模式
原型模式的核心是如何实现拷贝public class PrototypeClass implements Cloneable{ public PrototypeClass clone() { PrototypeClass prototypeClass = null; try { prototypeClass = (PrototypeClass) super.clone(); } catch.原创 2020-05-21 20:31:09 · 283 阅读 · 0 评论 -
深入Java设计模式之工厂模式
编写读文件功能。读取文件,包括编码(GBK,UTF-8,UNIONCODE)的文本文件,要求获取文本内容。读取图像文件(BMP,GIF,JPG),要求获取图像宽度、高度、长度、以及每一点的RGB基色信息。-1,首先我们可以写出一个基本的工厂类模式,如下所示,生成对应的读取总接口,以及对应的文本和图像抽象类,及对应的子列,对应子类的工厂方法,实现要求...原创 2020-05-20 17:30:54 · 328 阅读 · 0 评论