随笔分类 -  设计模式

摘要:简介 工厂方法模式通过引入工厂等级结构,解决了简单工厂模式中工厂类职责太重的问题,但由于工厂方法模式中的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,势必会增加系统的开销。此时,可以考虑将一些相关的产品组成一个 "产品族",由同一个工厂来统一生产,这就是抽象工厂模式的基本思想。 比如,对 阅读全文
posted @ 2022-10-23 16:25 Leaos 阅读(56) 评论(0) 推荐(0)
摘要:简介 在简单工厂模式中只提供一个工厂类,该工厂类处于对产品类进行实例化的中心位置,它需要知道每一个产品对象的创建细节,并决定何时实例化哪一个产品类。简单工厂模式最大的缺点是当有新产品要加入到系统中时,必须修改工厂类,需要在其中加入必要的业务逻辑,这违背了开闭原则。此外,在简单工厂模式中,所有的产品都 阅读全文
posted @ 2022-10-22 13:12 Leaos 阅读(54) 评论(0) 推荐(0)
摘要:概述 简单工厂模式其实并不属于 GoF 23 个经典设计模式,但是它是其他工厂模式的基础,其基本流程如下: 首先将需要创建的各种不同对象的相关代码封装到不同的类中,这些类称为具体产品类,每一个具体产品类都是抽象产品类的子类;然后提供一个工厂类用于创建各种产品,在工厂类中提供一个创建产品的工厂方法,该 阅读全文
posted @ 2022-10-21 15:09 Leaos 阅读(50) 评论(0) 推荐(0)
摘要:简介 在实际开发中,为了节约系统资源,有时需要确保系统中某个类只有唯一一个实例,当这个唯一实例创建成功之后,无法再创建一个同类型的其他对象,所有的操作都只能基于这个唯一实例。为了确保对象的唯一性,可以通过单例模式来实现,这就是单例模式的动机所在。 单例模式的定义:确保某一个类只有一个实例,而且自行实 阅读全文
posted @ 2022-10-20 17:58 Leaos 阅读(58) 评论(0) 推荐(0)
摘要:UML图示简介 在 UML 中,类使用包含类名、属性和操作且带有分割线的长方形来表示,如图所示,定义一个 Student 类,它包含属性 name、age 和 id,以及操作 modifyInfo()。 其对应的 C++ 代码片段如下: class Student { public: void mo 阅读全文
posted @ 2022-10-20 15:13 Leaos 阅读(429) 评论(0) 推荐(0)