java之设计模式
文章平均质量分 90
设计模式是程序结构模式的一种总结,也是我们必须要掌握和运用的,作为一名合格的程序员所必须掌握的
程序员山子
坚持着,总有一天你会站在最亮的地方活出自己曾经渴望的模样
展开
-
设计模式之装饰模式
装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。装饰模式的结构 装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任。换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰模式可以在不使用创造更多子类的情况下,将对象的功能加以扩展。 装饰模式的类图如下: 在装饰模式中的角色有: ● 抽象构件(Component)角色:给出一个抽象接口,以规范准备接收附加责任的对象。 ● 具体构件(Con转载 2021-01-28 19:58:40 · 810 阅读 · 0 评论 -
设计模式之工厂模式
在现实生活中社会分工越来越细,越来越专业化。各种产品有专门的工厂生产,彻底告别了自给自足的小农经济时代,这大大缩短了产品的生产周期,提高了生产效率。同样,在软件开发中能否做到软件对象的生产和使用相分离呢?能否在满足“开闭原则”的前提下,客户随意增删或改变对软件相关对象的使用呢?这就是本节要讨论的问题。在《简单工厂模式》一节我们介绍了简单工厂模式,提到了简单工厂模式违背了开闭原则,而“工厂方法模式”是对简单工厂模式的进一步抽象化,其好处是可以使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则。优转载 2021-01-28 19:52:14 · 78 阅读 · 0 评论 -
设计模式之简单工厂模式和抽象工厂模式
场景问题 举个生活中常见的例子——组装电脑,我们在组装电脑的时候,通常需要选择一系列的配件,比如CPU、硬盘、内存、主板、电源、机箱等。为讨论使用简单点,只考虑选择CPU和主板的问题。 事实上,在选择CPU的时候,面临一系列的问题,比如品牌、型号、针脚数目、主频等问题,只有把这些问题都确定下来,才能确定具体的CPU。 同样,在选择主板的时候,也有一系列问题,比如品牌、芯片组、集成芯片、总线频率等问题,也只有这些都确定了,才能确定具体的主板。 选择不同的CPU和主板,是每个客户在组装电转载 2021-01-28 19:38:20 · 176 阅读 · 0 评论 -
设计模式之责任链模式
模式的定义与特点责任链(Chain of Responsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。注意:责任链模式也叫职责链模式。在责任链模式中,客户只需要将请求发送到责任链上即可,无须关心请求的处理细节和请求的传递过程,请求会自动进行传递。所以责任链将请求的发送者和请求的处理者解耦了。责任链模式是一种对象行为型模式,其主要优点如下。原创 2021-01-28 19:33:06 · 154 阅读 · 0 评论 -
设计模式之策略模式
一 策略模式概念 策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换”。二 策略模式UML这个模式涉及到三个角色: ●...原创 2021-01-24 17:01:13 · 52 阅读 · 0 评论 -
设计模式之单例模式
一 单例模式的原理和特点 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。二 特点: 单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供这一实例。三 优缺点: 优点就是节约系统资源、提高了系统效率,同时也能够严格控制客户对它的访问。也许就是因为系统中只有一个实例,这样就导致了单例类的职责过重,违背了“单一职责原则”,同时也没有抽象类,所以扩展起来有一...原创 2021-01-24 16:31:28 · 62 阅读 · 0 评论 -
如何学习设计模式
GoF的[设计模式]是经典著作,有人看了好多遍仍然说没有看懂,许多人看懂了一些模式但不知道如何应用……这里,yqj2065抛砖引玉,讨论一下如何学习设计模式。①学习技巧学习设计模式时,有一些技巧能够帮助你快速理解设计模式。a)使用较简单的面向对象的语言如Java、C#。GoF的[设计模式]实质上是面向对象的设计模式。[GoF·1.1]中提到“程序设计语言的选择非常重要,它将影响人们理解问题的出发点”。从学习设计模式的角度看,Java和C#较C++更容易一些。比...转载 2021-01-24 15:35:53 · 86 阅读 · 0 评论 -
JAVA工程师必会的二十三种设计模式简述
一 前言 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被...原创 2021-01-24 12:23:01 · 92 阅读 · 0 评论 -
java设计模式之单例模式
java设计模式中的单例模式是最为常见的一种之一,并且网上也有许多资料可以查阅,说说我对这个模式的认识与理解,以学习笔记的形式展示给大家,也方便自己以后对知识的回顾。 单例模式用一句话来说明就是 可以 让一个类的实例有且只有一个,控制了类的实例化的个数,使用这种设计模式,有效的避免了实例化对象时出现重复性,节省了内存空间又提高实例化对象的时间效率,由于整个程序使用的都是同一个实例对象,就...原创 2018-10-09 16:59:52 · 158 阅读 · 0 评论