//常用设计模式简介
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、
备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
1)代表各个设计模式的简介
2)代表各个设计模式的应用场景
3)代表目的和优势
(*)代表重点掌握
一、工厂方法(*)
1)创建过程延迟到子类,返回抽象
2)dataSource接口
3)不同条件下创建不同实例
二、抽象工厂
1)一个工厂里聚合多个同类产品
2)
三、单例模式(*)
1)系统中该类实例只有一个,构造器私有,暴露公有访问方法
2)Spring框架中所有的Bean默认是单例
3)节约开销和资源
四、原型模式(*)
1)对象克隆
2)struts2中Action的Bean配置
3)快速产生相同的对象
五、建造者模式
1)使用多个简单的对象一步一步构建成一个复杂的对象
2)
3)将一个复杂的构建与其表示相分离
六、适配器模式
1)解决兼容性匹配问题
2)电源适配器、读卡器
3)转换匹配,复用功能
七、代理模式(*)
1)代理对象代表真实对象
2)jdk动态代理,aop代理,持久层的延迟加载
3)控制对象的访问
八、外观模式(*)
1)提供一个门面封装内部细节,简化客户端调用
2)javaEE中每个service都是众多dao的门面,客户端无需与多个dao打交道
3)封装交互、简化调用
九、装饰器模式
1)向一个现有的对象添加新的功能,同时又不改变其结构
2)
十、桥接模式(*)
1)分离抽象和实现
2)javaEE中让dao层管理持久层,让sevice层管理业务逻辑。
3)便与切换多个实现,解耦
十一、策略模式(*)
1)不同对象采用不用策略
2)Hibernate配置文件中配置数据库方言,便于切换数据库
3)分离算法,选择实现
十二、模板方法
1)固定骨架
2)HibernateTemplate等公共类
3)复用代码
十三、责任链模式(*)
1)如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推
2)web中的拦截器和过滤器
3)分离职责,动态组合
十四、命令模式(*)
1)把命令当请求或参数
2)java8里面的lambda表达式,回调函数
3)封装请求
十五、观察者模式(*)
1)一个对象变化时,其它依赖该对象的对象收到通知
2)java事件机制、java监听器等底层实现。JMS中发布订阅模型的实现
3)触发联动
十六、迭代器模式
1)以统一的方式访问聚合对象中的各个元素,而不用暴露对象内部细节
2)Iterator迭代器的使用
3)控制对象的访问
十七、中介者模式
1)让中介封装交互,简化调用
2)机场调度系统
3)封装交互,解耦
前言 设计模式的概念最早来源于建筑大师 Alexander 的《建筑的永恒方法一书》,书中的观点实际上也适用于软件设计领域。Alexander 是这样描述模式的: 模式是一条有三个部分组成的通用规则:它表示了一个特定环境、一类问题和一个解决方案之间的关系。每一个模式描述了一个不断重复发生的问题,以及该问题解决方案的核心设计。 软件设计模式通常被分成三类: 创建型:创建对象时,不再直接实例化对象,而...
设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 设计模式: 创建型模式 这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。 工厂模式(Factory Pattern); 抽象工厂模式(Abstrac...
1. 设计模式是什么 设计模式是一种设计思想,是为经常遇到的问题设计的通用解决方法。 2. 装饰器模式 维基百科: 通过装饰器模式,可以在运行时扩充一个类的功能。原理是:增加一个装饰类包裹原来的类,包裹的方式一般是通过在将原来的对象作为装饰类的构造函数的参数。装饰类实现新的功能,但是,在不需要用到新的功能的地方,它可以直接调用原来的类中的方法。装饰类必须和原来的类有相同的接口。 装饰模式是类继承的...
title: java常见设计模式 tags: java cover: /img/image-20210722094649829.png 单例模式 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。 总之,选择单例模式就是为了避免不一致状态,避免政出多头。 特点 1、单例类只能有一个实例...
工厂模式,简单一句话,就是使用工厂类创建对象并封装起来,不在main程序中暴露对象创建过程。...
构造函数模式 混合模式 模块模式 工厂模式 单例模式 发布订阅模式...
****#设计模式 单例模式 懒汉式 私有化构造函数,一个私有静态属性为该类的对象,一个静态方法里面new对象,判断是不是为空才new。 饿汉式 在加载类的时候就已经创建好静态对象,以后不在改变,所以是天生的线程安全的。 饿汉式,懒汉式区别 建造者模式 概念: 1.产品的内部表象 2.建造者模式的结构 3.什么时候用? 工厂模式 三种工厂模式 简单工厂模式,工厂方法模式,抽象工厂模式 工厂方法模式...
记录一下我对JavaScript中常见的设计模式的理解。 设计模式就是对特定类型问题重用的软件解决方案,这些问题在软件开发的时候经常会碰到,通过很多年的实践,专家对一些相似地问题总结出一些方法,这些方法就封装成为一种设计模式 1. 构造函数模式 这个模式还是比较好理解的,写一个构造函数,通过 new 调用,写个简单的构造函数的例子,如下: 2. 工厂模式 工厂模式就是一个函数,return 出来已...
设计模式六大原则 开放封闭原则:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。 里氏替换原则:所有引用基类的地方必须能透明地使用其子类的对象. 依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 单一职责原则:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 接口隔离原则:客户端不应该依赖它不需要的接口;一个类对另一...
单例模式 核心思想:禁止外部实例化,统一有类内部实例化对象有且只有一个实例返回给外部调用。 实现思路: 1.私有化clone,__construct函数避免外部直接实例化 2.声明静态属性obj存储类内部实例化对象,并且通过公开方法get_db把对象返回给外部调用。 以下是一个使用单例模式实现mysqli的一个类 工厂模式 概述:一般情况下调用者需要调用其他类的方法时,需要实例化被调用者然后在调用...