设计模式笔记:掌握面向对象创建模式的关键
需积分: 5 193 浏览量
更新于2024-11-17
收藏 110KB ZIP 举报
资源摘要信息:"设计模式笔记:执照"
在面向对象编程(OOP)中,设计模式是一套被反复使用、多数人知晓、经过分类编目、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。在本笔记中,我们将重点讨论创建型模式和结构型模式。
创建模式主要解决的问题是如何在面向对象系统中创建对象,同时隐藏创建逻辑,而不是使用new直接实例化对象。创建模式包含以下几种:
1. 工厂方法模式(Factory Method):
工厂方法模式通过定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法把类的实例化操作推迟到子类,此模式适用于创建对象时,子类可以指定创建对象的类型。
2. 抽象工厂模式(Abstract Factory):
抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。抽象工厂允许客户端使用抽象接口来创建一组相关或相互依赖的对象,无需关心具体的实现类。
3. 构建器模式(Builder):
构建器模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。一个复杂对象的构建与它的表示分离,同样的构建过程可以创建不同的表示。它将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的产品。
4. 原型模式(Prototype):
原型模式用于创建重复的对象,同时又能保证性能。这种模式实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。
5. 单例模式(Singleton):
单例模式确保一个类只有一个实例,并提供一个全局访问点来获取该实例。单例模式经常被用于管理资源如数据库连接、线程池等。
6. 多例模式(Multiton):
多例模式是单例模式的扩展,允许多个实例的存在,但每个实例都是唯一的。多例模式可以为不同的关键字维护一组实例。
7. 对象池模式(Object Pool):
对象池模式可以减少创建和销毁对象的次数,从而减少系统的性能开销。对象池通过预先创建一组实例,并将这些实例放入一个对象池中,以备后续使用。
结构型模式关注的是系统中对象的组织结构,包括它们如何相互关联、如何划分职责等。结构型模式包含以下几种:
1. 适配器模式(Adapter):
适配器模式是一种结构型设计模式,通过将一个类的接口转换成客户期望的另一个接口,使原本接口不兼容的类可以一起工作。
2. 桥接模式(Bridge):
桥接模式是一种结构型设计模式,它分离抽象和实现,使它们可以独立地变化。抽象部分将引用实现部分,这样抽象部分的变化不会影响到实现部分。
3. 组合模式(Composite):
组合模式是一种结构型设计模式,它允许将对象组合成树形结构来表现整体/部分层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。
4. 装饰器模式(Decorator):
装饰器模式允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有类的一个包装。
5. 外观模式(Facade):
外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。
6. 享元模式(Flyweight):
享元模式是一种结构型设计模式,它通过共享来支持大量细粒度的对象。享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。
7. 代理模式(Proxy):
代理模式为其他对象提供一种代理以控制对这个对象的访问。代理模式的关键在于,当客户对真实对象进行操作时,可以在真实对象前后进行一些处理。
以上为设计模式的基础知识,涵盖了创建型和结构型设计模式的核心概念和应用场景。在实际的Java编程实践中,设计模式不仅可以提升代码的复用性、灵活性和可维护性,还能增强系统的稳定性和可扩展性。掌握这些模式并合理运用,是每个软件开发人员进阶不可或缺的一步。
2021-10-01 上传
2019-08-08 上传
2021-05-21 上传
2021-05-27 上传
2021-03-25 上传
2021-04-29 上传
2021-04-02 上传
2021-05-28 上传
2021-05-16 上传
e起学美术
- 粉丝: 22
- 资源: 4631
最新资源
- 数字单片机数字单片机
- D语言编程参考手册1.0
- JAVA程序员面试题解惑
- cognos8.12学习资料
- Intel双核与超线程的区别与联系
- 如何编写LINUX 驱动
- Apache与多个Tomcat服务器集成时的负载平衡.txt
- GCC中文手册,详细介绍GCC
- GCC中文手册,详细介绍GCC
- Cross-words Reference Template for DTW-based Speech Recognition Systems
- 一份不太简短的LaTex介绍
- Linux 常用指令大全
- 计算机毕业论文(试题库管理系统)
- 综合电子仿真与设计项目
- XX公司网络设计方案doc
- Oracle Biee Catalog合并