现在我已经打破了你的心情和愿望,让我向你介绍一些设计模式,这些设计模式将使你成为一名出色的开发人员。
为此有几种设计模式。 其中大部分在书中都有解释。 但最常用和最喜欢的设计模式如下:
-SingletonDesign模式:仅允许:只允许创建一个类的一个实例。
- 策略模式(StrategyDesign Pattern):通过解耦类行为提供灵活性。
- 观察者设计模式:允许类在不了解任何内容的情况下相互交互。
-CompositeDesign Pattern:为所有类提供统一的访问点。
- 模型-视图-控制器设计模式(MVC):摇滚乐队的“披头士”。
我将从游戏引擎开发的角度讨论每种设计模式(我是一名偏执的游戏引擎开发人员)。 但是,以下概念适用于任何应用程序或游戏开发。
单例模式(SingletonDesign模式)
在游戏中地图场景,就像在电影中一样,应该只有一名导演。 导演是一个指导游戏中发生的事情的类。 它控制对象的渲染。 它控制位置更新。 它将玩家的输入引导至正确的游戏角色。
引擎应该通过 Singleton 设计模式防止创建多个 Director 类实例。 这种设计模式确保对于给定的类只有一个实例化对象。
策略模式(StrategyDesign Pattern)
在游戏中,您应该解耦输入控制器和游戏逻辑之间的交互。 无论输入控制器(按钮、手势、操纵杆)如何,游戏的逻辑都应该接收相同类型的输入。
尽管每个输入控制器对用户的行为不同,但它们必须向游戏逻辑提供相同的数据。 此外,添加或删除输入控制器不应导致游戏崩溃。
由于策略设计模式,这种解耦的行为和灵活性是可能的。 这种设计模式允许动态更改行为游戏引擎设计模式,而无需修改任何游戏逻辑,从而为您的游戏提供高度的灵活性。
观察者设计模式
在您的游戏中,所有类都应设计为低耦合。 这意味着您的类应该能够相互交互,并尽可能少地了解彼此。 让你的类具有低耦合性,这样你的游戏就可以模块化并灵活地添加新功能而不会出现意外错误。
当对象想要向其订阅者(其他类对象)发送消息时3D道具,通常会实现此模式。 对象不需要知道订阅者如何工作,但它们可以相互通信。
复合设计模式
游戏通常包含许多视图。 角色显示在主视图中。 有一个子视图显示玩家的分数。 有一个子视图显示游戏的剩余时间。 如果您在移动设备上玩游戏游戏引擎设计模式,则每个按钮都是一个视图。
可维护性应该是游戏开发过程中首要考虑的问题。 每个视图不应具有不同的函数名称或不同的访问点。 相反,您希望为每个视图提供统一的访问点,即相同的函数调用应该能够访问主视图和子视图。
这个统一的接入点可以使用复合设计模式。 该模式将各个视图放置在树形结构中,为各个视图提供统一的访问点。 复合模式不需要使用不同的函数来访问不同的子视图,而是可以使用相同的函数来访问任何视图。
模型-视图-控制器设计模式
如果模型-视图-控制器设计模式是一支摇滚乐队,那么它肯定会被称为“披头士乐队”。 毫无疑问。 它是程序员中使用最广泛和首选的设计模式。
我通过模型视图控制器介绍了设计模式。 但我希望情况不会如此。像许多程序员一样,我开始
学习了这个设计模式,却没有意识到这个模式是由三个基本设计模式组成的。 没有意识到这一点导致了很多混乱。
模型-视图-控制器设计模式由三种模式组成:
- 策略模式
- 观察者风格
- 连击模式
如上图所示,策略模式代表了MVC的Controller部分。 策略模式将用户输入与游戏逻辑(模型)和界面(视图)分开。
组合的设计模式代表应用程序中的所有视图(主窗口和按钮)。 这种设计模式为模型的所有视图提供了统一的访问点。
观察者模式代表应用程序(模型)中的逻辑。 通过这种模式,模型能够与视图和控制器交互,而无需了解其内部细节。 这种模式可以降低所有类之间交互的耦合度。
希望这篇文章可以帮助到您。