摘要:概念定义 享元(Flyweight)模式运用共享技术高效地支持大量 细粒度 对象的复用。 当系统中存在大量相似或相同的对象时,有可能会造成内存溢出等问题。享元模式尝试 重用现有的同类对象,如果未找到匹配的对象则创建新对象 ,从而减少系统中重复创建对象实例的性能和内存消耗。 享元模式将对象的信息分为两 阅读全文
posted @ 2019-10-12 21:59 clover_toeic 阅读 (7) 评论 (0) 编辑
摘要:概念定义 使用原型实例指定待创建对象的种类,并通过拷贝该原型来创建新的对象。Prototype模式允许一个原型对象克隆(复制)出多个与其相同的对象,而无需知道任何如何创建的细节。 应用场景 + 对象的创建过程较为复杂且需要频繁创建 + 期望根据现有的实例来生成新的实例,例如: 对象种类繁多而无法整合 阅读全文
posted @ 2019-10-12 21:58 clover_toeic 阅读 (5) 评论 (0) 编辑
摘要:概念定义 简单工厂(Simple Factory)模式,又称静态工厂方法(Static Factory Method)模式,即定义一个工厂类,根据传入的不同参数创建不同的产品实例,这些实例对象具有共同的父类或接口。 应用场景 + 需要创建的产品对象较少,否则工厂逻辑会过于复杂。 + 客户端只关心产品 阅读全文
posted @ 2019-10-12 21:58 clover_toeic 阅读 (4) 评论 (0) 编辑
摘要:概念定义 工厂方法(Factory Method)模式,又称多态工厂(Polymorphic Factory)模式或虚拟构造器(Virtual Constructor)模式。工厂方法模式通过定义工厂抽象父类(或接口)负责定义创建对象的公共接口,而工厂子类(或实现类)则负责生成具体的对象。 工厂方法模 阅读全文
posted @ 2019-10-12 21:58 clover_toeic 阅读 (3) 评论 (0) 编辑
摘要:概念定义 抽象工厂(Abstract Factory)模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 抽象工厂模式中,系统的产品有 多于一个 的产品族(一个产品族里定义多个产品),而系统只消费其中某一族的产品。换句话说,抽象工厂创建一整套具有相互依赖或作用关系的产品(至少两 阅读全文
posted @ 2019-10-12 21:58 clover_toeic 阅读 (3) 评论 (0) 编辑
摘要:概念定义 Singleton(单例)模式是指在程序运行期间, 某些类只实例化一次,创建一个全局唯一对象。因此,单例类只能有一个实例,且必须自己创建自己的这个唯一实例,并对外提供访问该实例的方式。 单例模式主要是为了避免创建多个实例造成的资源浪费,以及多个实例多次调用容易导致结果出现不一致等问题。例如 阅读全文
posted @ 2019-10-12 21:57 clover_toeic 阅读 (8) 评论 (0) 编辑
摘要:概念定义 Builder模式是一步一步创建一个复杂对象的创建型模式。该模式将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示隔离开来。 应用场景 + 对象创建过程比较复杂,或对创建顺序或组合有依赖(经典Builder模式,可参阅GOF《设计模式》)。 + 创建对象时所需参数较多,且包含较多 阅读全文
posted @ 2019-09-24 20:45 clover_toeic 阅读 (31) 评论 (0) 编辑
摘要:前言 Java Stream API借助于Lambda表达式,为Collection操作提供了一个新的选择。如果使用得当,可以极大地提高编程效率和代码可读性。 本文将介绍Stream API包含的方法,并通过示例详细展示其用法。 一、Stream特点 Stream不是集合元素,它不是数据结构也不保存 阅读全文
posted @ 2019-05-28 21:15 clover_toeic 阅读 (260) 评论 (0) 编辑
摘要:前言 Java中空指针异常(NPE)一直是令开发者头疼的问题。Java 8引入了一个新的Optional类,使用该类可以尽可能地防止出现空指针异常。 Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。Option 阅读全文
posted @ 2019-05-22 16:40 clover_toeic 阅读 (137) 评论 (0) 编辑
摘要:前言 在使用Iterator遍历容器类的过程中,如果对容器的内容进行增加和删除,就会出现ConcurrentModificationException异常。该异常的分析和解决方案详见博文《Java ConcurrentModificationException 异常分析与解决方案》和《解决Array 阅读全文
posted @ 2018-02-23 21:27 clover_toeic 阅读 (132) 评论 (0) 编辑