设计模式
- 格式:ppt
- 大小:427.00 KB
- 文档页数:24


Java23种设计模式
设计模式:模式是一种问题的解决思路,它已经适用于一个实践环境。并且可以适用于其他环境。
设计模式的分类:分布式编程模式,用户界面模式,数据模型模式三大类。
设计模式的作用:设计的重用; 为设计提供共同的词汇,每个模式名就是一个设计词汇,其概念使得程序员的交流变得方便;在开发文档中采用模式词汇可以让其他人更容易理解你的想法。
GoF设计模式的分类:
根据目的准则分类:
1. 创建型:creational 与对象的创建有关。
2. 结构型:Structural 处理类或对象之间的组合。
3. 行为型:behavioral 描述类或对象如何交互及如何分配职责。
创建型模式:
1.抽象工厂模式 AbstractFactory
2.建造者模式 Builder
3.工厂方法模式 Factory Method
4.原型模式 Prototype
5.单例模式 Singleton
结构型模式 :
1.适配器模式 Adapter
2.桥接模式 Bridge
3.组合模式 Composite
4.装饰模式 Decorator
5.外观模式 Facade
6.享元模式 Flyweight
7.代理模式 Proxy
行为模式:
1.职责链模式 Chain of Responsibility
2.命令模式 Command
3.解释器模式 Interpreter
4.迭代器模式 Iterator
5.中介者模式 Mediator
6.备忘录模式 Memento
7.观察者模式 Observer
8.状态模式 State
9.策略模式 Strategy
10.模板方法模式 Template Method
11.访问者模式 Visitor
常见23种模式讲解:
1) 抽象工厂模式(Abstract Factory):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
常见设计模式及应用场景
设计模式是一组指南和最佳实践,用于帮助开发人员创建高质量、可维护和可重用的软件。它们描述了在不同领域中的软件设计中常见的问题和解决方案,例如面向对象编程、软件架构和用户界面设计。
以下是一些常见的设计模式及其应用场景:
1. 单例模式:用于确保一个类仅有一个实例,并提供全局访问点。适用于需要确保实例只有一个的情况,例如日志类、配置信息类等。
2. 工厂模式:用于创建对象的模式,根据不同的条件返回不同的实例。适用于需要创建多种不同对象的情况,例如创建不同的用户角色、订单状态等。
3. 建造者模式:用于创建对象的模式,提供一种方法来逐步构建对象。适用于需要创建复杂的对象结构的情况,例如建筑工程、软件开发项目等。
4. 观察者模式:用于处理对象之间的观察者关系,当一个对象发生变化时,所有依赖它的对象都会更新。适用于需要处理对象之间依赖关系的情况,例如客户关系管理系统、音乐播放器等。
5. 适配器模式:用于将一个类的接口转换成客户希望的另一个接口。适用于需要将不同类型的数据转换为不同的格式的情况,例如将 JSON 数据转换为 XML 数据、将 CSV 数据转换为 Excel 数据等。
6. 装饰器模式:用于动态地给一个对象添加一些额外的职责。适用于需要动态地增加对象的功能的情况,例如动态增加日志记录功能、动态增加缓存功能等。
7. 策略模式:用于定义一系列算法,将它们一个个封装起来,并使它们可以互相替换。适用于需要定义多种算法的情况,例如用户认证策略、文件压缩策略等。
8. 模板方法模式:用于将一个复杂方法分解成的简单方法的封装。适用于需要将一个复杂方法分解成多个简单方法的情况,例如将一个复杂的 SQL 查询语句分解成多个简单的查询语句。
9. 命令模式:用于处理请求 - 响应模型的模式,允许客户端请求一个命令,并使该命令执行。适用于需要处理请求 - 响应模型的情况,例如管理系统消息、发送电子邮件等。
设计模式
一:简单工厂:减少对象之间的耦合,对象之间的调用隐藏起来了。如父类下面定义了多种子类,
在工厂里面可以通过父类生成它的所有子类。
简单工厂模式能够根据外界给定的信息,决定究竟应该创建哪个具体类的对象。
外界与具体类隔离开来,偶合性低。
区分了各自的职责和权力,有利于整个软件体系结构的优化。
项目中:service层调用dao层的实例,
二:single单例模式:
1.构造方法要用private修饰。
2.方法要用同步(synchronized)
3.方法与属性都要用静态(static)
4.在方法里面对对象进行判断,如果不存在就创建一个,如果有了直接返回。
项目中例用:连接Connection对象的时候,我们可以把它设为一个单例类,这样就会节省
不必要的资源浪费了。
三:stragegy策略模式:定义一系列的算法,把这些算法封装成单独的类, 并且使它们可相互替换。
解决问题:某个具体的解决方法有很多种可选择的实现。
例子:我们日常生活中常接触到的一个例子,如去超市购物,当我们买东西结账的时候我们
可以支付现金,也可以选择用银行卡支付、也可以有其它的方法去支付。总之我们的钱减少了。
这几种支付方式是可以自己选择的。
策略模式(Strategy)的应用场景是:
1. 多个类的分别只是在于行为不同
2. 你需要对行为的算法做很多变动
3. 客户不知道算法要使用的数据
优点有:
1.提供了管理相关的算法族的办法。可以把公共的代码移到父类里面,从而避免重复的代码。
2.提供了可以替换继承关系的办法。继承可以处理多种算法或行为。使得动态改变算法或行为
不可变。
3. 使用策略模式可以避免使用多重条件转移语句。
缺点有:
1. 客户端必须知道所有的策略类,并自行决定使用哪一个策略类。只适用于客户端知道所有
的算法或行为的情况。
2. 策略模式造成很多的策略类。
四:template模板模式:操作中算法的骨架,将一些步骤延迟到子类中去做。 (也就是父类定义子类实现。)
常用设计模式和应用场景
常用设计模式和应用场景
1、工厂模式
工厂模式是指定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行。
应用场景:通常需要创建多种不同类型的对象,并且希望客户端不需要知道对象的具体类型,可以使用工厂模式。
2、策略模式
策略模式(Strategy Pattern)定义一系列算法,将每一个算法封装起来,并让它们可以互换。策略模式让算法独立于使用它的客户而变化,也称为政策模式。
应用场景:当一个对象的行为或算法可能有多种实现时,可以使用策略模式,将每一种算法封装成一个类,从而使得算法可以相互替换。
3、观察者模式
观察者模式(Observer Pattern)定义对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。
应用场景:当一个对象的改变需要同时改变其他对象,而且它不知道具体有多少对象有待改变时,可以使用观察者模式。
4、单例模式
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
应用场景:当需要保证一个类只有一个实例存在时,可以使用单例模式。