存档

‘编程技术’ 分类的存档

接口和抽象类在程序设计中的区别和定位

2021年4月30日 评论已被关闭

在开发中,很多情况下倾向于使用虚基类,而很少使用接口,有些人甚至声称接口很“鸡肋”,不知道接口可以用来做什么、怎么用。本文根据个人开发经验和阅读大型项目代码的经验总结一下接口和基类在程序设计、架构上面的区别和定位。

阅读全文...

分类: Unity, 设计模式, 游戏开发 标签:

重写GetHashCode方法的意义

2021年4月27日 评论已被关闭

今天看代码的时候遇到一个比较有意思的地方重写了GetHashCode方法,总结一下需要重写GetHashCode的一些情形。

阅读全文...

分类: Unity, C# 标签:

【游戏设计模式】注册表

2021年4月6日 评论已被关闭

【游戏设计模式】分化

2021年2月24日 评论已被关闭

分化(differentiation)是从细胞分化中衍生的概念,指一个类的不同实例拥有不同的行为和特征,选择性开启某些属性或者方法。

阅读全文...

分类: 设计模式 标签:

【游戏设计模式】派生和演化

2020年9月24日 评论已被关闭

派生(derive)和继承是OOP的核心,随着经验增加,对派生的理解更深入后认为有必要写一篇文章。

阅读全文...

分类: 设计模式, 其他 标签:

【游戏设计模式】多例模式

2020年7月27日 评论已被关闭

多例模式(Multiton)区别于单例模式,类型在整个进程内同时可以有多个实例,可以不限制实例个数,也可以限制实例个数,且在类型内部创建、管理实例,并向外部提供实例。多例模式的应用包括对象池、线程池等。多例模式不像单例模式那样通过一个Multiton模板去实现,是比较隐晦的,但应用很多,简单的说就是集中创建、管理、销毁某个类型的实例,属于一种创建型模式。 阅读全文...

分类: 设计模式 标签:

【游戏设计模式】装饰器

2020年7月23日 评论已被关闭

装饰器(Decorator)有的地方叫包装器(Wrapper)用来对类型进行扩展,但并不直接继承这个类型,而是继承自类型的基类,并通过组合方式引用此类型。这样不会产生拥有同样特性的重复类,只提供额外的新特性。也可以称作包装器(Wrapper),一个包装器是对另一个类型的包装。

阅读全文...

分类: 设计模式 标签:

【游戏设计模式】共生

2020年5月24日 评论已被关闭

共生(Symbiotic Objects)指紧密联系的一些对象,拥有相同的生命周期,一荣俱荣,一损俱损,当其中一个被销毁时,其他共生对象也会一起销毁,这些对象共同组成一个共生体。

阅读全文...

分类: 设计模式 标签:

C#迭代器和协程

2020年4月30日 评论已被关闭

在开发中经常使用协程做并发和异步,协程的实现分为有栈协程(stackful)和无栈协程(stackless)两种,其中C#的yield return实现是无栈协程。

阅读全文...

分类: Unity, C# 标签:

IndexedSet

2020年4月8日 评论已被关闭

Unity UGUI里的一个数据结构,能够同时实现有序存储和O(1)查找。

阅读全文...

分类: 片段, C# 标签: