摘要: 一,概述 简单工厂:一个工厂类根据传入的参量决定创建出那一种产品类的实例。 简单工厂模式结构比较简单,其核心是工厂类的设计,其结构如图1所示: 在简单工厂模式结构图中包含如下几个角色: ● Factory(工厂角色):工厂角色即工厂类,它是简单工厂模式的核心,负责实现创建所有产品实例的内部逻辑;工厂 阅读全文
posted @ 2019-01-08 20:08 Archer-Fang 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 1 界面皮肤库的初始设计 图1 界面皮肤库结构示意图 图2 基于工厂方法模式的界面皮肤库初始结构图 采用工厂模式的话,存在如下问题: (1) 当需要增加新的皮肤时,虽然不要修改现有代码,但是需要增加大量类,针对每一个新增具体组件都需要增加一个具体工厂,类的个数成对增加,这无疑会导致系统越来越庞大,增 阅读全文
posted @ 2019-01-08 20:06 Archer-Fang 阅读(493) 评论(0) 推荐(0) 编辑
摘要: 工厂方法模式提供一个抽象工厂接口来声明抽象工厂方法,而由其子类来具体实现工厂方法,创建具体的产品对象。 开发人员决定使用工厂方法模式来设计日志记录器,其基本结构如图3所示: 图3 日志记录器结构图 在图3中,Logger接口充当抽象产品,其子类FileLogger和DatabaseLogger充当具 阅读全文
posted @ 2019-01-08 19:06 Archer-Fang 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 优先级队列(priority queue) 是一种抽象数据类型, 它类似于常规的队列或栈, 但每个元素都有与之关联的“优先级”。 在优先队列中, 低优先级的元素之前前面应该是高优先级的元素。 如果两个元素具有相同的优先级, 则根据它们在队列中的顺序是它们的出现顺序即可。 优先队列虽通常用堆来实现,但 阅读全文
posted @ 2019-01-08 16:20 Archer-Fang 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 在计算机科学中, 一个 ** 堆(heap)** 是一种特殊的基于树的数据结构,它满足下面描述的堆属性。 在一个 最小堆(min heap) 中, 如果 P 是 C 的一个父级节点, 那么 P 的key(或value)应小于或等于 C 的对应值. 在一个 最大堆(max heap) 中, P 的ke 阅读全文
posted @ 2019-01-08 14:54 Archer-Fang 阅读(169) 评论(0) 推荐(0) 编辑