4.3k 4 分钟

# 抽象工厂模式 属于创建型模式。 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 缺点:难以扩展 适用性: 一个系统要独立于它的产品的创建、组合和表示时(创建与表示分离) 一个系统要由多个产品系列中的一个来配置时(在多个系列中选择一个系列) 当你要强调一系列相关的产品对象的设计以便进行联合使用时(同系列中有多种产品) 当你提供一个产品类库,而只想显示它们的接口而不是实现时(客户端依赖抽象) # 类图 数据的储存分为客户端和服务端 需要储存的数据的类型有很多(本文以 User 和 Character 为例) # 代码 # 用于数据储存的类 namespace...
1.8k 2 分钟

# 观察者模式 属于行为型模式。 它定义了一种一对多的依赖关系,当一个对象的状态发生改变时,其所有依赖者都会收到通知并自动更新。 CSharp 事件就是观察者模式。接下来的演示将不会使用委托和事件,而是使用接口来实现。 # 类图 # 代码 # 观察者接口以及实现接口的类 namespace BehavioralPatterns_ObserverPattern{ /// <summary> /// 观察者 /// </summary> public interface Observer { ///...
2.4k 2 分钟

# 建造者模式 属于创建型模式。 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 主要用于创建一些复杂的对象,这些对象内部构建间的建造顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化。 用户只需要指定需要建造的类型就可以得到它们,如果需要改变一个产品的表示,只需要新创建一个建造者即可。 # 类图 # 代码 # 产品 namespace CreationalPatterns_BuilderPattern{ /// <summary> /// 形状 /// </summary> public class...
7k 6 分钟

# 性能优化 性能优化是指通过改进软件、系统或者代码的设计与实现,使其在执行过程中达到更高的运行效率和更低的资源消耗。性能优化旨在提升程序的响应速度、吞吐量、资源利用率以及用户体验。 性能优化涉及多个方面,包括但不限于以下几个方面: 算法优化:选择更高效的算法或者数据结构,减少计算量和存储空间的使用。 代码优化:改进代码的执行效率和资源利用,例如减少循环次数、消除冗余计算、合理使用缓存等。 并发优化:充分利用多核处理器和并发编程技术,提高程序的并发处理能力,减少资源竞争和延迟。 IO 优化:减少磁盘、网络和其他 IO 操作对性能的影响,采用缓存、异步...
732 1 分钟

# .meta 文件 .meta 文件是 Unity 引擎中用于存储关于其他文件的元数据的文件。每个 .meta 文件都与一个特定的文件关联并拥有与之相同的命名,它保存了有关该文件的各种信息,包括但不限于以下内容: fileFormatVersion: 文件的格式版本号。 guid: 资源的唯一标识符(Globally Unique Identifier)。 timeCreated /timeModified: 文件的创建时间和修改时间。 userName /lastModifiedInspector: Unity 用户的用户名、上一次修改资源的检查器类型。 licenseType:...
1k 1 分钟

# 外观模式 属于结构型模式。 隐藏系统的复杂性,并向客户端提供易于使用的接口。 使用场景: 设计初期阶段,应该要有意识的将不同的两个层分离(比如经典的三层架构,就需要考虑在数据访问层、业务逻辑层、表示层之间建立外观类) 在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,增加外观类可以减少他们之间的依赖 在维护一个遗留的大型系统时,可能这个系统已经非常难以维护和扩展了,但是新的需求开发必须要依赖它。此时就可以为新系统开发一个外观类,可以让外观类与遗留代码交互所有复杂的工作 # 类图 # 代码 # 创建一个类作为例子 namespace...
1k 1 分钟

# 模板模式 属于行为型模式。 一个抽象类公开定义了执行它的方法的方式 / 模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。 # 类图 # 代码 # 抽象类及其子类 namespace BehavioralPatterns_TemplatePattern{ /// <summary> /// 形状 /// </summary> public abstract class Shape { /// <summary> /// 形状 ///...
4.5k 4 分钟

# 原型模式 属于创建型模式。 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 原型模式是通过拷贝一个现有对象生成新的对象,当直接创建对象的代价比较大时,则采用这种模式。 拷贝分为深拷贝和浅拷贝,接下来将分别介绍。 使用场景: 资源优化 类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等 性能和安全要求的场景 通过 new...
1k 1 分钟

# 代理模式 属于结构型模式。 代理模式为其他对象提供一种代理以控制对这个对象的访问。 按职责来划分,通常有以下使用场景: 远程代理 虚拟代理 Copy-on-Write 代理 保护(Protect or Access)代理 Cache 代理 防火墙(Firewall)代理 同步化(Synchronization)代理 智能引用(Smart Reference)代理。 # 类图 创建接口,由具体的类实现接口 创建代理类,实现接口 # 代码 # 接口 namespace StructuralPattern_ProxyPattern{ public interface...