如何用原型模式设计魔兽怪物创建,实现Darren的怪物快速复制与定制?

2026-03-30 15:010阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1903个文字,预计阅读时间需要8分钟。

如何用原型模式设计魔兽怪物创建,实现Darren的怪物快速复制与定制?

在先前的文章中,我们介绍了简单工厂模式、策略模式、单一职责原则、开放封闭原则、依赖倒转原则、装饰模式、代理模式、抽象工厂模式。上一节,我们探讨了利用工厂模式构建英雄的实例。


在之前的文章中我们讲了简单工厂模式,策略模式,单一职责原则,开放封闭原则,依赖倒转原则,装饰模式,代理模式,抽象工厂模式,上一节在抽象工程模式中讲了利用工厂模式创建英雄的过程,今天我将带大家用原型模式模拟一下魔兽世界里面的怪物创建,其实我平时很少玩游戏的,但是我喜欢对游戏进行分析,下面就讲一下设计思路:

我要模拟的是这样的场景,模拟游戏地图中的出怪功能:

地图中创建怪,也许一次不止要创建一个怪,而是创建一批怪,怎么编程才能让我们的游戏耗的资源小一点呢,对于大型的游戏,系统配置是玩游戏的瓶颈所在:

最易想到的就是用for循环去创建一批怪,但是这样每次创建一个怪,都要new一次,这样明显的是不太合理的。

下面我就讲一下如何用原型模式来解决这个问题;

原型模式其实就是将一个对象再创建到另外一个可定制的对象,而且不知道任何创建的细节。

在其它语言中如果想使用原型模式,必须要在要被克隆的类中定义Clone接口,然后在具体的类中去实现这个接口。

因为我用的.NET,在.net里面,Clone方法实现用是太多了,所以.NET在System下定义了ICloneable接口,其中就是唯一的一个方法,Clone,所以在使用的过程中我们只要实现Clone接口就可以了。

阅读全文

本文共计1903个文字,预计阅读时间需要8分钟。

如何用原型模式设计魔兽怪物创建,实现Darren的怪物快速复制与定制?

在先前的文章中,我们介绍了简单工厂模式、策略模式、单一职责原则、开放封闭原则、依赖倒转原则、装饰模式、代理模式、抽象工厂模式。上一节,我们探讨了利用工厂模式构建英雄的实例。


在之前的文章中我们讲了简单工厂模式,策略模式,单一职责原则,开放封闭原则,依赖倒转原则,装饰模式,代理模式,抽象工厂模式,上一节在抽象工程模式中讲了利用工厂模式创建英雄的过程,今天我将带大家用原型模式模拟一下魔兽世界里面的怪物创建,其实我平时很少玩游戏的,但是我喜欢对游戏进行分析,下面就讲一下设计思路:

我要模拟的是这样的场景,模拟游戏地图中的出怪功能:

地图中创建怪,也许一次不止要创建一个怪,而是创建一批怪,怎么编程才能让我们的游戏耗的资源小一点呢,对于大型的游戏,系统配置是玩游戏的瓶颈所在:

最易想到的就是用for循环去创建一批怪,但是这样每次创建一个怪,都要new一次,这样明显的是不太合理的。

下面我就讲一下如何用原型模式来解决这个问题;

原型模式其实就是将一个对象再创建到另外一个可定制的对象,而且不知道任何创建的细节。

在其它语言中如果想使用原型模式,必须要在要被克隆的类中定义Clone接口,然后在具体的类中去实现这个接口。

因为我用的.NET,在.net里面,Clone方法实现用是太多了,所以.NET在System下定义了ICloneable接口,其中就是唯一的一个方法,Clone,所以在使用的过程中我们只要实现Clone接口就可以了。

阅读全文