C++设计模式详解:创建型、结构型与行为型模式

需积分: 0 2 下载量 196 浏览量 更新于2024-07-24 1 收藏 1.05MB PDF 举报
Work createWork(); } ConcreteCreator publicclassStudentWorkFactoryimplementsIWorkFactory{ @Override publicWork createWork(){ returnnewStudentWork(); } } ConcreteCreator2 publicclassTeacherWorkFactoryimplementsIWorkFactory{ @Override publicWork createWork(){ returnnewTeacherWork(); } } main方法 publicstaticvoidmain(String[]args){ IWorkFactory factory = new StudentWorkFactory(); Work work = factory.createWork(); work.doWork(); // 输出: 学生做作业! factory = new TeacherWorkFactory(); work = factory.createWork(); work.doWork(); // 输出: 老师审批作业! } 在这个例子中,`Work` 是产品接口,`StudentWork` 和 `TeacherWork` 是具体的产品类,实现了 `Work` 接口。`IWorkFactory` 是工厂接口,定义了创建 `Work` 对象的方法,而 `StudentWorkFactory` 和 `TeacherWorkFactory` 是具体的工厂类,它们实现了 `IWorkFactory` 接口并返回各自对应的产品实例。 (二)抽象工厂模式 抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。这种模式通常用于系统框架或跨平台开发,使得更换不同环境下的产品族变得容易。 (三)建造者模式 建造者模式将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。它允许用户只关注产品的构造过程,而不关心产品是如何被创建的。 (四)单态模式 单态模式确保一个类只有一个实例,并提供一个全局访问点。这种模式在需要频繁实例化然后销毁的对象,或者创建对象需要消耗大量资源时非常有用。 (五)原型模式 原型模式通过复制已有对象来创建新对象,减少了类的实例化次数,提高了性能。特别适用于深拷贝场景。 二、结构型模式 结构型模式关注如何组织类和对象以获得更好的结构,同时保持它们在设计上的独立性。 (一)适配器模式 适配器模式将不兼容的接口转换为客户期望的接口,使得原本由于接口不兼容而无法一起工作的类可以协同工作。 (二)桥接模式 桥接模式将抽象部分与实现部分分离,使它们可以独立变化。这降低了系统的耦合度,提高了灵活性。 (三)组合模式 组合模式允许你将对象组合成树形结构来表现“整体/部分”层次结构。它使得用户对单个对象和组合对象的使用具有一致性。 (四)装饰模式 装饰模式动态地给一个对象添加一些额外的职责,提供了一种使用继承增加对象功能的替代方案。 (五)外观模式 外观模式为子系统提供了一个统一的接口,使得客户端无需知道子系统组件的细节,简化了客户端与子系统之间的交互。 (六)享元模式 享元模式运用共享技术有效支持大量细粒度的对象,减少内存中对象的数量,提高系统性能。 (七)代理模式 代理模式为其他对象提供一种代理以控制对这个对象的访问,可以用于远程代理、虚拟代理、安全代理等。 三、行为型模式 行为型模式关注对象之间的责任分配和行为传播。 (一)责任链