Java基础教程(19)-设计模式简述

举报
厨师之乡 发表于 2024/04/28 07:57:50 2024/04/28
【摘要】 设计模式,即Design Patterns,是指在软件设计中,被反复使用的一种代码设计经验。使用设计模式的目的是为了可重用代码,提高代码的可扩展性和可维护性。设计模式把一些常用的设计思想提炼出一个个模式,然后给每个模式命名,这样在使用的时候更方便交流。23个常用模式分为创建型模式、结构型模式和行为型模式三类创建型模式关注点是如何创建对象,其核心思想是要把对象的创建和使用相分离,这样使得两者能...

设计模式,即Design Patterns,是指在软件设计中,被反复使用的一种代码设计经验。使用设计模式的目的是为了可重用代码,提高代码的可扩展性和可维护性。

设计模式把一些常用的设计思想提炼出一个个模式,然后给每个模式命名,这样在使用的时候更方便交流。

23个常用模式分为创建型模式、结构型模式和行为型模式三类

创建型模式关注点是如何创建对象,其核心思想是要把对象的创建和使用相分离,这样使得两者能相对独立地变换。

创建型模式包括:

工厂方法:Factory Method
抽象工厂:Abstract Factory
建造者:Builder
原型:Prototype
单例:Singleton

工厂方法:

工厂方法是指定义工厂接口和产品接口,但如何创建实际工厂和实际产品被推迟到子类实现,从而使调用方只和抽象工厂与抽象产品打交道。
实际更常用的是更简单的静态工厂方法,它允许工厂内部对创建产品进行优化。
调用方尽量持有接口或抽象类,避免持有具体类型的子类,以便工厂方法能随时切换不同的子类返回,却不影响调用方代码

抽象工厂模式是为了让创建工厂和一组产品与使用相分离,并可以随时切换到另一个工厂以及另一组产品;

  • 生成器模式(Builder)是使用多个“小型”工厂来最终创建出一个完整对象。

  • 原型模式是根据一个现有对象实例复制出一个新的实例,复制出的类型和属性与原实例相同。

  • 单例模式(Singleton)的目的是为了保证在一个进程中,某个类有且仅有一个实例

结构型模式主要涉及如何组合各种对象以便获得更好、更灵活的结构。虽然面向对象的继承机制提供了最基本的子类扩展父类的功能,但结构型模式不仅仅简单地使用继承,而更多地通过组合与运行期的动态组合来实现更灵活的功能。

结构型模式有:

适配器
桥接
组合
装饰器
外观
享元
代理

  • Adapter模式可以将一个A接口转换为B接口,使得新的对象符合B接口规范。
  • 装饰器(Decorator)模式,是一种在运行期动态给某个对象的实例增加功能的方法
  • 外观(Facade)模式是为了给客户端提供一个统一入口,并对外屏蔽内部子系统的调用细节
  • 享元模式的设计思想是尽量复用已创建的对象,常用于工厂方法内部的优化。
  • 代理模式 为其他对象提供一种代理以控制对这个对象的访问。

行为型模式主要涉及算法和对象间的职责分配。通过使用对象组合,行为型模式可以描述一组对象应该如何协作来完成一个整体任务。
行为型模式有:

责任链
命令
解释器
迭代器
中介
备忘录
观察者
状态
策略
模板方法
访问者

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。