JAVA设计模式--简单介绍

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

一、简介

Design pattern 是众多软件开发人员经过漫长的试验和错误总结出来的在软件开发过程中面临一般问题的解决方案,代表着最佳实践。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。

二、分类

2.1、创建型模式(Creational Patterns)

这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用新的运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。

创建型模式包含:

(1)工厂模式(Factory Pattern)

(2)抽象工厂模式(Abstract Factory Pattern)

(3)单例模式(Singleton Pattern)

(4)建造者模式(Builder Pattern)

(5)原型模式(Prototype Pattern)

2.2、结构型模式(Structural Patterns)

这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得的新功能的方式。

结构型模式包含:

(1)适配器模式(Adapter Pattern)

(2)桥接模式(Bridge Pattern)

(3)过滤器模式(Filter、Criteria Pattern)

(4)组合模式(Composite Pattern)

(5)装饰器模式(Decorator Pattern)

(6)外观模式(Facade Pattern)

(7)享元模式(Flyweight Pattern)

(8)代理模式(Proxy Pattern)

2.3、行为型模式(Behavioral Patterns

这些设计模式特别关注对象之间的通信

行为型模式包含:

(1)责任链模式(Chain of Responsibility Pattern)

(2)命令模式(Command Pattern)

(3)解释器模式(Interpreter Pattern)

(4)迭代器模式(Iterator Pattern)

(5)中介者模式(Mediator Pattern)

(6)备忘录模式(Memento Pattern)

(7)观察者模式(Observer Pattern)

(8)状态模式(State Pattern)

(9)空对象模式(Null Object Pattern)

(10)策略模式(Strategy Pattern)

(11)模板模式(Template Pattern)

(12)访问者模式(Visitor Pattern)

2.4、J2EE型模式(J2EE Patterns)

这些设计模式特别关心表现层是由 Sun Java Center 鉴定的。

(1)MVC 模式(MVC Pattern)

(2)业务代表模式(Business Delegate Pattern)

(3)组合实体模式(Composite Entity Pattern)

(4)数据访问对象模式(Data Access Object Pattern)

(5)前端控制器模式(Front Controller Pattern)

(6)拦截过滤器模式(Intercepting Filter Pattern)

(7)服务定位器模式(Service Locator Pattern)

(8)传输对象模式(Transfer Object Pattern)




转载于:https://my.oschina.net/CandyDesire/blog/354222

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/545607.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么是PID控制

在进入正式话题之前需要引入四个概念:稳态误差、终值定理、幅角条件和系统稳定的充要条件。 稳态误差:系统达到稳定状态后,系统的实际输出量与系统希望的输出量之间的偏差。 终值定理:设有连续函数f(t)f(t)f(t),当t趋于…

卡尔曼滤波器推导

注:受控制领域大牛CAN博士启发,受益匪浅,作此文以为笔记。 简介 设 卡尔曼滤波器是从测量值ZZZk的平均数开始的。开始推导: 由上式可知   也就是说随着kkk的增大,测量结果Zk不在重要,因为已经获得了足…

cocos2dx3.2文件结构和代码结构

既然选定了cocos2dxlua的原生方式来开发,首先要确定的是使用哪个版本的cocos2dx,先看看github上的changelog和releasenote,然后在google里搜索一下,参考了jacky的博客http://zengrong.net/post/2100.htm,最终选择了coc…

改进的PID算法

位置式PID算法 位置式PIDPIDPID算法是一种比较直观的的PIDPIDPID算法,如系统框图中所示,ininin表示设定值,errorerrorerror表示差值,uuu表示控制器输出值,outoutout表示被控量。算法表达式如下: 增量式PI…

几种简单电路知识汇总

这篇文章用于记录平时设计电路或者在书中遇到的一些电路方面的知识,会不定期更新。就先从运算放大器开始,对此做个简单的介绍。 运算放大器 说到运算放大器就不得不说两个概念,虚短与虚断。 虚短: 在理想情况下,运算…

51单片机——交通灯

原理图 功能描述 1、基本功能就是如同红绿灯一般,不做赘述。   2、红灯时长和绿灯时长可通过按键设置,即按键列中的上面4个,当这4个按键有一个按下后便进入时长设置功能,设置完成后按最下面两个按键(紧急控制按钮&am…

设置TextField内文字距左边框的距离

2019独角兽企业重金招聘Python工程师标准>>> //设置文本框左边的viewUITextField *textField [[UITextField alloc]init];textField.frame CGRectMake(10, 30, 300, 30);[self.view addSubview:textField];textField.leftView [[UIView alloc]initWithFrame:CGRe…

类的三大特性

类有三大特性:继承,封装,多态,这个也是介绍类的时候,必须提到的话题,那么今天就来看一下OC中类的三大特性: 一、封装 学习过Java中类的同学可能都知道了,封装就是对类中的一些字段&a…

操作系统抢占式优先级调度_操作系统中的优先级调度(非抢先)

操作系统抢占式优先级调度Priority scheduling is a type of scheduling algorithm used by the operating system to schedule the processes for execution. The priority scheduling has both the preemptive mode of scheduling and the non-preemptive mode of scheduling…

数据结构pta选择判断复习

第一章绪论 1-3数据的逻辑结构是指数据的各数据项之间的逻辑关系。 错 是数据元素之间的逻辑关系 2-4以下属于逻辑结构的是( )。 (2分) 顺序表 散列表 有序表 单链表 有序表 2-12以下关于数据结构的说法中正确的是____。 (2分) A数据结构的逻辑结构独立于…

粗略的看JFinal的基于AOP的拦截器的实现

2019独角兽企业重金招聘Python工程师标准>>> 简单的说一下AOP的实现,所谓AOP,即(Aspect Oriented Programming)的缩写,体现在程序中就是你可以通过配置在任意的代码块前后插入你想插入的执行代码。例如日志…

大二上数据结构复习

目录 第一章绪论练习 第二章线性表 第三章栈和队列 第四章串 第五章数组和广义表 第六章树和二叉树 第七章图 第九章查找 第十章排序 第一章绪论练习 1-8 数据结构的抽象操作的定义与具体实现有关。 (1分) T F 1-14 数据结构包括数据对象集以及它们的逻辑结构和物理结构&#…

大二上数据结构复习2

第二章线性表 综合 一、在什么情况下用顺序表比用链表好 表长度确定,很少进行插入删除操作且经常访问元素 二、2-4 顺序表的插入和删除要求仍然保持各个元素原来的次序。设在等概率情形下, 对有 127 个元素的顺序表进行插入, 平均需要移动多少个元素? 删除一个元素…

操作系统(王道笔记第二章)

目录第二章 2.1_1进程的定义、组成、组成形式、特征 2.1_2进程的状态与转换 2.1_3进程的控制 2.1_4进程通信 2.1_5线程概念和多线程模型 2.2_1处理机调度的概念层次 2.2_2处理机调度的时机、切换与过程、方式 2.2_3调度算法的评价指标 2.2_4FCFS、SJF、HRRN调度算法 2.2_5时间片…

C语言画图形(图形库graphics的使用)

目录 工具 c语言基本绘图 文字输出 c语言基本贴图 获取鼠标、键盘信息 工具 (1)环境:VC (2)库函数:graphics.h(因为不是标准库函数,所以需下载EASYX) (3&am…

关于DDD中Domain的思考

2019独角兽企业重金招聘Python工程师标准>>> 本文既不推销UML,也不推广DDD,更不涉及各种论战。-- 作者 某天又一次打开关于DDD(领域驱动设计)的PDF文档时,自己有了个疑问:什么是领域(Domain)?译文中是这样描…

算法设计TSP问题动态规划

#include <iostream> #include <cmath> using namespace std; //集合虚拟化用000 、001 、010 、011 、100 、101 、110 、111分别表示{} 、{1}&#xff08;V[2^(1-1)]&#xff09; 、{2}&#xff08;V[2^(2-1)]&#xff09; 、{1,2}&#xff08;V[2^(1-1)2^(2-1)]…

字符串使用与内部实现原理

Redis 发展到现在已经有 9 种数据类型了&#xff0c;其中最基础、最常用的数据类型有 5 种&#xff0c;它们分别是&#xff1a;字符串类型、列表类型、哈希表类型、集合类型、有序集合类型&#xff0c;而在这 5 种数据类型中最常用的是字符串类型&#xff0c;所以本文我们先从字…

Lisp-Stat翻译 —— 第九章 统计绘图窗体

2019独角兽企业重金招聘Python工程师标准>>> 第九章 统计绘图窗体 除了前几章略述的绘图窗体原型提供的基本绘图工具之外&#xff0c;Lisp-Stat里的统计绘图还需要用来管理数据和将那些数据转换成屏幕上的图形的工具集。这些工具由绘图原型graph-proto提供。更多的…

操作系统(王道笔记第三章内存)

第三章内存3.1_1内存的基础知识&#xff08;1&#xff09;什么是内存&#xff1a;略&#xff08;2&#xff09;进程运行的基本原理①从写程序到程序运行②链接③装入3.1_2内存管理的概念&#xff08;1&#xff09;内存管理管哪几个方面&#xff08;2&#xff09;内存保护①上下…