设计模式
文章平均质量分 93
设计模式
中国彭于晏杭州分晏
这个作者很懒,什么都没留下…
展开
-
《深入设计模式》笔记 -创建型模式五、单例模式
单例模式 亦称: 单件模式、Singleton 意图 单例模式是一种创建型设计模式, 让你能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。 问题 单例模式同时解决了两个问题, 所以违反了_单一职责原则_: 1.保证一个类只有一个实例。 为什么会有人想要控制一个类所拥有的实例数量? 最常见的原因是控制某些共享资源 (例如数据库或文件) 的访问权限。 它的运作方式是这样的: 如果你创建了一个对象, 同时过一会儿后你决定再创建一个新对象, 此时你会获得之前已创建的对象, 而不是一个新对象。 注意,原创 2022-02-13 21:35:09 · 121 阅读 · 0 评论 -
《深入设计模式》笔记 -创建型模式四、原型模式
原型模式 亦称: 克隆、Clone、Prototype 意图 原型模式是一种创建型设计模式, 使你能够复制已有对象, 而又无需使代码依赖它们所属的类。 问题 如果你有一个对象, 并希望生成与其完全相同的一个复制品, 你该如何实现呢? 首先, 你必须新建一个属于相同类的对象。 然后, 你必须遍历原始对象的所有成员变量, 并将成员变量值复制到新对象中。 不错! 但有个小问题。 并非所有对象都能通过这种方式进行复制, 因为有些对象可能拥有私有成员变量, 它们在对象本身以外是不可见的。 从外部” 复制对象并非总原创 2022-02-13 21:25:42 · 249 阅读 · 0 评论 -
《深入设计模式》笔记 -创建型模式三、生成器模式(建造者模式)
生成器模式 亦称:建造者模式、Builder 意图 生成器模式是一种创建型设计模式, 使你能够分步骤创建复杂对象。 该模式允许你使用相同的创建代码生成不同类型和形式的对象。 问题 假设有这样一个复杂对象, 在对其进行构造时需要对诸多成员变量和嵌套对象进行繁复的初始化工作。 这些初始化代码通常深藏于一个包含众多参数且让人基本看不懂的构造函数中; 甚至还有更糟糕的情况, 那就是这些代码散落在客户端代码的多个位置。 如果为每种可能的对象都创建一个子类, 这可能会导致程序变得过于复杂。 例如, 我们来思考如何创原创 2022-02-13 21:13:54 · 119 阅读 · 0 评论 -
《深入设计模式》笔记 -创建型模式二、工厂方法模式
抽象工厂模式 亦称: Abstract Factory 意图 抽象工厂模式是一种创建型设计模式, 它能创建一系列相关的对象, 而无需指定其具体类。 问题 假设你正在开发一款家具商店模拟器。 你的代码中包括一些类, 用于表示: 1.一系列相关产品, 例如 椅子Chair 、 沙发Sofa和 咖啡桌CoffeeTable 。 2.系列产品的不同变体。 例如, 你可以使用 现代Modern 、 维多利亚Victorian 、 装饰风艺术ArtDeco等风格生成 椅子 、 沙发和 咖啡桌 。原创 2022-02-11 20:25:17 · 314 阅读 · 0 评论 -
《深入设计模式》笔记 -创建型模式一、工厂方法模式
工厂方法模式 亦称:虚拟构造函数、Virtual Constructor、Factory Method 意图 工厂方法模式是一种创建型设计模式, 其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型。 问题 假设你正在开发一款物流管理应用。 最初版本只能处理卡车运输, 因此大部分代码都在位于名为 卡车的类中。 一段时间后, 这款应用变得极受欢迎。 你每天都能收到十几次来自海运公司的请求, 希望应用能够支持海上物流功能。 如果代码其余部分与现有类已经存在耦合关系, 那么向程序中添加新类其实并没原创 2022-02-10 22:15:53 · 140 阅读 · 0 评论