生成器模式 模式功能说明:通过定义一个Builder接口,来规定如何创建各个部分,然后通过具体的Builder来实现这些部分的创建,最后通过一个Director来组装这些部分,从而完成对象的创建。 模式思路与原理 生成器模式结构中包括四种角色: 产品(Product):具体生产器要构造的复杂对象; 抽象生成器(Bulider):抽象生成器是一个接口,该接口除了为创建一个Product对象的各个组件定义了若干个方法之外,还要定义返回Product对象的方法(定义构造步骤); 具体生产器(ConcreteBuilder):实现Builder接口的类,具体生成器将...
单例模式 模式功能说明:保证一个类只有一个实例,并提供一个全局访问点。这样可以避免在多个地方创建对象,从而节省系统资源,提高效率。 两种方式 饿汉式 public class Singleton { private static Singleton instance = new Singleton(); private Singleton (){} public static Singleton getInstance() { return instance; } } 在类加载时就完成了初始化,就...
抽象工厂模式 模式功能说明:是一种创建型设计模式,它提供了一种创建一系列相关或相互依赖对象的接口,而无需指定具体实现类。抽象工厂模式通过定义一个抽象工厂接口,该接口声明了一系列用于创建不同类型对象的方法,具体的工厂类实现了这些方法来创建具体的对象。 模式思路与原理 在抽象工厂模式中,有四个主要角色: 抽象产品接口(Product Interface):定义了产品对象的共同接口。 具体产品类(Concrete Product Class):实现了产品接口,是被创建的对象。 抽象工厂接口(Abstract Factory Interface):定义了一系列用于...
工厂方法模式 模式功能说明:是一种创建型设计模式,它定义了一个用于创建对象的接口,但将具体对象的创建延迟到子类中。工厂方法模式通过让子类决定创建的对象类型,来解决简单工厂模式中违反开闭原则的问题。 模式思路与原理 在工厂方法模式中,有四个主要角色: 抽象产品接口(Product Interface):定义了产品对象的共同接口。 具体产品类(Concrete Product Class):实现了产品接口,是被创建的对象。 抽象工厂类(Factory Interface):定义了创建产品对象的工厂方法。 具体工厂类(Concrete Factory Class...
简单工厂模式 模式功能说明:一种创建型设计模式,它提供了一种创建对象的方式,而无需暴露对象创建的逻辑细节。简单工厂模式通过一个工厂类来创建对象,客户端只需要提供参数,工厂类根据参数的不同来创建相应的对象。 模式思路与原理 在简单工厂模式中,有三个主要角色: 产品接口(Product Interface):定义了产品对象的共同接口。 具体产品类(Concrete Product Class):实现了产品接口,是被创建的对象。 简单工厂类(Simple Factory Class):负责创建具体产品对象的工厂类。 案例 // 产品接口 ...
本文使用环境 系统:windows11 环境:vs2010 EasyLogging++功能介绍 Easylogging+ +是用于C+ +应用程序的单头高效日志库。它非常强大、高度可扩展并且可根据用户的要求进行配置。它提供了编写您自己的接收器的能力(通过称为 的特色功能LogDispatchCallback)。该库目前被 github和其他开源源代码控制管理网站上的数百个开源项目使用。 下载 8.91 该版本最高支持vs2010。 [最新](https:/...
迪米特法则 原则说明:迪米特法则,也被称为最少知识原则(Least Knowledge Principle),一个对象应该对其他对象有最少的了解。通俗的讲,一个类应该对自己需要耦合或调用的类知道的越少越好。 为什么要遵守该原则 该原则是为了让使系统降低类之间的耦合度,提高模块的相对独立性。 用一个简单的例子说明 假设我们要去逛商场,去店铺里面买东西,通过代码实现: // 顾客类 public class Customer { private String name; public Customer(String name) {...
组合/聚合复用原则 原则说明:组合/聚合复用原则(Composite/Aggregate Reuse Principle,CARP),尽量使用对象的组合/聚合关系达到代码复用的目的,而不是使用继承关系。 为什么要遵守该原则 该原则是为了让使系统更加灵活,降低类与类之间的耦合度,一个类的变化不会对其他类造成影响。其优点如下: 维护了类的封装性,因为成员对象的内部细节对于新对象不可见,因此这种复用又被称为 “黑箱”复用。 新旧类之间的耦合度低,新对象操作成员对象的唯一方法是通过操作成员对象暴露的接口。 复用的灵活性高,这种复用可以在运行期间动态进行,新对象可以动...
开闭原则 原则说明:开闭原则 (The Open/Closed Principle, OCP) ,软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的,这意味着一个实体是允许在不改变它的源代码的前提下变更它的行为。 为什么要遵守该原则 该原则在产品化的环境中是特别有价值的,改变源代码需要代码审查,单元测试以及诸如此类的用以确保产品使用品质的过程。遵循这种原则的代码在扩展时并不发生改变,只需对拓展的部分进行测试即可。 用一个简单的例子说明 假设我们有一个绘图的类,它可以绘制各种形状 public class Graphi...
接口隔离原则 原则说明:接口隔离原则(Interface Segregation Principle,ISP), 客户端不应该被迫依赖于它不使用的接口,或者说,类间的依赖关系应该建立在最小的接口上。 为什么要遵守该原则 该原则是为了让系统解开耦合,从而容易重构,更改和重新部署。 用一个简单的例子说明 假设我们有一个打印机接口,它有打印、扫描和复印三个方法 public interface Printer { void print(); void scan(); void copy(); } 现在我们有一个...