
设计模式
文章平均质量分 69
基于JAVA语言,分享设计模式的魅力.
非正经程序员
曾就职于某医疗领域行业Top大厂,现某创业公司负责软件架构设计;
擅长语言:C/C++、Python、Java;
擅长领域:计算机图形学、图像算法、音视频编解码、GPU并行计算、人工智能、架构设计等方向;
专注分享技术干货和工作经验,关注我,不迷路。
展开
-
设计模式(java)-观察者模式
观察者模式,行为型设计模式。观察者模式在实际项目实践中,是一种使用较频繁的设计模式,它主要解决的是信息同步的问题,当多个对象需要从同一个主题中得到自身所需要的信息或状态,并通过这些信息或状态做出相应的行为时,就可以使用观察者模式解决。原创 2023-05-14 22:36:45 · 373 阅读 · 0 评论 -
设计模式(java)-模板方法模式
1. 简介 模板方法模式,行为型设计模式。定义一个算法的执行骨架,而内部的操作步骤可由子类去做不同的实现。例如一些小游戏如射击、足球等,它们的执行过程都是一样的,只是执行内容不同罢了,那么这个执行过程(初始化、开始游戏、结束游戏)就是算法的骨架,而执行内容(射击本身和足球本身的规则、内容不一样)就是具体的操作内容。再比如,我们高中时经常会遇到同一类应用题,它们的解题思路都是基本一致的,而题目中...原创 2020-02-05 22:43:13 · 350 阅读 · 0 评论 -
设计模式(java)-策略模式
1. 简介 策略模式,行为型设计模式,指对象有某种行为,在不同的场景或需求中表现方式不同。一个或多个场景下拥有一种表现方式。策略模式就是对这种场景设计的模式。 策略模式再软件设计中是经常被使用的,且难度相对来说很小,这里就不做过多的解释了。如我们在设计一个算法时,它可能在不同的需求下算法的公式不一样。例如个人所得税,各个国家的收税算法都是不一样的,根据不同国家的需求,就会制定不同的策略。...原创 2019-01-13 22:27:42 · 167 阅读 · 0 评论 -
设计模式(java)-组合模式
1. 简介 组合模式,同样引用百度百科的定义:将对象组合成树形结构以表示“部分整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 从以上的解释,我们可以看出,为了保证整体和部分对象的使用一致性。那么,整体和部分就需要有相同的接口方法,那么怎么才能体现整体和部分的差别呢,那么就需要在整体中有对部分的引用,同时拥有对部分的增删查改的方法。 所以,组合模式多应用于...原创 2019-01-07 23:44:24 · 458 阅读 · 0 评论 -
设计模式(java)-享元模式
1. 简介 享元模式,同样引用百度百科的解释:它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于只是因重复而导致使用无法令人接受的大量内存的大量物件。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。 享元模式主要解决的是当系统中存在大的内存或对象时,且这些内存或对象在很多地方使用频繁,如果这些内存和对...原创 2019-01-12 19:14:39 · 130 阅读 · 0 评论 -
设计模式(java)-桥接模式
1. 简介 桥接模式,引用百度百科的解释如下:桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interfce)模式。 由上可以看出来,它存在两个维度的对象:抽象部分和实现部分。那么什么是抽象部分,什么是实现部分呢。抽象部分:一般的,它存在于实现部分,继承于统一个接口的抽象化实例。实...原创 2018-12-30 19:37:56 · 190 阅读 · 0 评论 -
设计模式(java)-代理模式
1. 简介 代理模式,为了控制委托对象的访问,为其提供了一个代理类,该代理类拥有委托类对象的引用。代理类在委托类和客户之间起到中介的作用,用来控制委托对象的成员、方法等的访问,从而达到与客户代码的解耦。 一般的委托类只负责自身的业务处理,而代理类中会负责调用和使用委托类方法的逻辑处理,以便更好的使用委托对象中的方法,从而完成客户代码的需求。所以,代理类的目的,主要是控制委托对象的访问。 ...原创 2018-12-22 16:23:45 · 249 阅读 · 0 评论 -
设计模式(java)-外观模式
1. 简介 外观模式,为了隐藏系统的复杂性,向客户提供统一的接口层,消除客户与系统的耦合。该设计模式为结构性模式。、 在中大型程序中使用很多,当整个软件系统分为多个模块或层次结构,在各层或各子系统通信时,可以使用外观模式来隐藏各子系统或各层的内部细节,向自己的客户系统提供统一的接口,保证系统的独立性。 由于设计模式比较简单,这里只给出一个简单的代码示例,以及它的使用场景。2. 代码示...原创 2018-12-10 23:17:44 · 204 阅读 · 0 评论 -
设计模式(java)- 装饰模式
1. 简介 装饰模式可以动态给一个对象扩展功能,并且它可以使客户灵活的组合自己所需要的功能,使用装饰器类装饰自己所以需要的功能。 一般的,我们需要给一个对象扩展功能时,会在该对象的类中新增方法或者直接继承该类。那么当新增的功能变多时,新增方法的方式会导致类大小膨胀,且不符合类的单一职责,在后续维护中会越来越麻烦。如果使用直接继承的方式,却会导致类的个数膨胀,且一个类只能负责一个功能,这样显...原创 2018-12-02 23:40:38 · 226 阅读 · 0 评论 -
设计模式(java)- 适配器模式
ddd原创 2018-11-25 21:57:08 · 281 阅读 · 0 评论 -
设计模式(java)- 原型模式
简介类图实例浅拷贝深拷贝总结原创 2018-11-10 19:10:52 · 247 阅读 · 0 评论 -
设计模式(java)- 建造者模式
1. 简介 建造者模式,借用百度百科的解释:建造者模式是设计模式的一种,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 如上,可以看出来建造者模式属于创建型模式的一种,它的作用主要是:将类对象的创建过程和细节封装起来,客户代码只需要知道自己建造对象的建造者是谁就可以获取到自己需要的类对象。根据客户代码的需求可以通过相同的创建顺序和逻辑创建出拥有相同成员类...原创 2018-11-04 18:52:25 · 458 阅读 · 0 评论 -
设计模式(java)- 工厂模式
工厂模式工厂模式,顾名思义,属于创建型模式,在一个项目中也是经常被使用的一种模式。工厂模式分为简单工厂、工厂方法、抽象工厂三种模式。工厂模式可以使客户通过简单的调用方法来获取相关联或者继承同一父类的子类对象,方便了程序的扩展性,将客户代码与对象的创建进行解耦,客户代码不必关系对象创建的逻辑就可以直接获取自己想要的对象。简单工厂模式简单工厂模式体现在简单二字,即一个工厂类就可以构造出客户所需要...原创 2018-10-31 01:01:08 · 197 阅读 · 0 评论 -
设计模式(java)- 单例模式
单例模式在一个项目中我们最常见的就是单例模式,这也是很多设计模式中最简单的一种设计模式,它的作用主要是保证一个程序中该类的实例对象有且只有一个。单例类多用于工具类,一个模块的接口类或者叫入口类(确认该模块在程序中只需要一个实例对象),以及工厂模式中的工厂类也常常作为单例使用。之前有用c#写过单例模式的代码用例,所以这里就不过多的介绍单例模式的写法和原理,直接上用例。饿汉式class ESin...原创 2018-10-31 00:02:41 · 132 阅读 · 0 评论 -
设计模式(一):单例模式
很久之前就想写关于设计模式的东西,在我看来,设计模式,编程技巧,就相当于武侠小说中的功夫招式,而算法,编程思想则是内功。好的招式会使你的程序更加健壮,扩展性更好,程序更加优美。所以,学习设计模式应该是必不可少的,在这个系列中我会一边学习一边记录。因为在我学习设计模式的时候发现,学起来并不是很难,但是用起来却很难,这可能和经验有关,所以记录一下这些设计模式的理论知识和用法,对自己以后还是很有帮助的。原创 2016-04-29 15:19:52 · 572 阅读 · 0 评论