iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >Unity游戏开发中的桥接模式
  • 297
分享到

Unity游戏开发中的桥接模式

Unity桥接模式Unity设计模式 2023-05-19 08:05:09 297人浏览 八月长安
摘要

目录一、使用中介者模式的原因二、桥接模式的定义三、桥接模式的使用说明四、桥接模式的实现范例五、桥接模式的总结一、使用中介者模式的原因 比如,在实现较为复杂的角色和装备关系时,将两种

一、使用中介者模式的原因

比如,在实现较为复杂的角色和装备关系时,将两种角色(ISoldier和IEnemy)和三种武器(WeaponGun、WeaponRifle和WeaponRocket)交叉组合时,会存在以下问题:

  • 每当要新增角色类时,都要在新的子类中重复编写相同的程序代码,比如每种武器都要实现对应角色的Fire。
  • 当新增武器类型时,所有角色子类中的Attack方法,都必须修改,针对新的武器类型编写新的对应程序。同时也增加了维护的难度,使得武器类型不容易增加。

要解决上述问题,可以使用桥接模式的设计方法。

二、桥接模式的定义

桥接模式是最好应用但也是最难理解的,尤其是他的定义不长,其中关键的“抽象与实现分离”。

中介者模式在GoF中的说明:将抽象与实现分离,使二者可以独立地变化。

三、桥接模式的使用说明

创建一个桥接模式的结构如图:

其中的参与者如下:

Abstraction(抽象体接口)

  • 拥有指向Implementor的对象引用。
  • 定义抽象功能的接口,也可以作为子类调用实现功能的接口。

RefinedAbstraction(抽象体实现,扩充)

  • 继承抽象体并调用Implementor完成实现功能。
  • 扩充抽象体的接口,增加额外的功能。

Implementor(实现体接口)

  • 定义实现功能的接口,提供给Abstraction(抽象体)使用。
  • 接口功能可以只有单一的功能,真正的选择则再由Abstraction(抽象体)的需求加以组合应用。

ConcreteImplementorA/B(实现体)

完成实现接口上所定义的方法。

四、桥接模式的实现范例

介绍一个GoF范例程序如下:

绘图引擎(实现体接口和实现体)

   /// <summary>
    /// 绘图引擎(实现体接口和实现体)
    /// </summary>
    public abstract class RenderEngine
    {
        public abstract void Render(string objName);
    }
    /// <summary>
    /// DirectX 引擎
    /// </summary>
    public class DirectX : RenderEngine
    {
        public override void Render(string objName)
        {
            DXRender(objName);
        }
        public void DXRender(string objName)
        {
            //print "ObjName"
        }
    }
    /// <summary>
    /// OpenGL 引擎
    /// </summary>
    public class OpenGL : RenderEngine
    {
        public override void Render(string objName)
        {
            GLRender(objName);
        }
        public void GLRender(string objName)
        {
            //print "ObjName"
        }
    }

形状 (抽象接口)

/// <summary>
    /// 形状 (抽象接口)
    /// </summary>
    public abstract class IShape
    {
        protected RenderEngine renderEngine = null;
        public void SetRenderEngine(RenderEngine renderEngine)
        {
            this.renderEngine = renderEngine;
        }
        public abstract void Draw();
    }

具体形状的实现(抽象体接口的子类):

   /// <summary>
    /// 球体
    /// </summary>
    public class Sphere : IShape
    {
        public override void Draw()
        {
            renderEngine.Render("Sphere");
        }
    }
    /// <summary>
    /// 圆柱体
    /// </summary>
    public class Cube : IShape
    {
        public override void Draw()
        {
            renderEngine.Render("Cube");
        }
    }
    /// <summary>
    /// 圆柱体
    /// </summary>
    public class Cylinder : IShape
    {
        public override void Draw()
        {
            renderEngine.Render("Cylinder");
        }
    }

由于RenderEngine将绘图引擎的功能与使用接口类分离,让原本依赖实现的程度降到最低。

五、桥接模式的总结

桥接模式具备以下优点:

将抽象与实现分离,之间的耦合度降到最低,利用游戏后期开发新增或修改内容;

总结:

桥接模式可以将两个群组有效地分离,让连个群组彼此之间互不影响。这两个群组可以是“抽象定义”与“功能实现”,也可以是两个需要交叉合作后才能完成某项任务的类。

到此这篇关于Unity游戏开发中的桥接模式的文章就介绍到这了,更多相关Unity桥接模式内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Unity游戏开发中的桥接模式

本文链接: https://www.lsjlt.com/news/212639.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Unity游戏开发中的桥接模式
    目录一、使用中介者模式的原因二、桥接模式的定义三、桥接模式的使用说明四、桥接模式的实现范例五、桥接模式的总结一、使用中介者模式的原因 比如,在实现较为复杂的角色和装备关系时,将两种...
    99+
    2023-05-19
    Unity桥接模式 Unity设计模式
  • Unity游戏开发中的设计模式之策略模式
    目录一、使用策略模式的原因二、策略模式的定义三、策略模式的使用说明四、策略模式的实现范例五、中介者模式的优点和注意事项六、策略模式的总结一、使用策略模式的原因 在设计游戏角色伤害时,...
    99+
    2023-05-19
    Unity策略模式 Unity设计模式
  • 探秘Unity游戏开发中的状态设计模式
    目录一、状态模式定义二、实现范例三、使用状态模式(state)实现游戏场景的转换四、使用状态模式的优点一、状态模式定义 状态模式(state)在GoF中的解释: 让一个对象的行为随着...
    99+
    2023-05-19
    Unity状态模式 Unity设计模式
  • Unity游戏开发中必备的设计模式之外观模式详解
    目录一、外观模式定义二、外观模式说明三、实现游戏主程序1、游戏主架构设计2、实现说明3、使用外观模式的优点四、结论一、外观模式定义 外观模式(Facade)在GoF中的解释:为子系统...
    99+
    2023-05-19
    Unity设计模式之外观模式 Unity外观模式
  • Unity游戏开发之2048游戏的实现
    目录一、前言二、游戏开发知识储备2-1技术栈三、休闲类游戏《2048》开发实战3-1玩法概述3-2实现分析3-3搭建场景3-4实现代码一、前言 写今天这篇文章的缘由,其实是来自于前段...
    99+
    2024-04-02
  • Unity游戏开发之射击小游戏的实现
    目录前言游戏画面展示游戏代码解析游戏打包总结前言 人们一直都说学习和玩游戏不能兼顾,那我们就来边学习怎样制作游戏,边玩游戏 不就兼得了嘛~ 我可真是一个小天才呢~ 所以本篇文章为大家...
    99+
    2024-04-02
  • Unity游戏开发之炸弹人游戏的实现
    目录前言制作思路开始制作第一步:游戏场景制作第二步:墙体代码第三步:炸弹人制作第四步:炸弹处理第五步:敌人制作第六步:游戏控制器第七步:UI控制器前言 大家小时候肯定玩过这款游戏,炸...
    99+
    2024-04-02
  • Java设计模式中的桥接模式
    目录模式介绍UML类图桥接模式案例桥接模式的注意事项和细节常见的应用场景模式介绍 桥接模式(Bridge模式)是指:将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变。是一种...
    99+
    2024-04-02
  • [游戏开发][Unity] 打包Xcode工程模拟器+真机调试
    Xcode版本:Xcode14 本文中会出现的名词有 苹果开发者账号、相关设备cer证书、开发者证书、发布证书 苹果开发者账号 账号分三类,个人,公司,企业,价格99/99/299美金 新注册账号的基本设置按网上的教程来就行 我们公司是企...
    99+
    2023-09-15
    unity xcode ios
  • PHP中的桥接模式是什么
    这篇文章主要讲解了“PHP中的桥接模式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP中的桥接模式是什么”吧!桥接模式,在程序世界中,其实就是组合/聚合的代名词。为什么这么说呢?熟...
    99+
    2023-06-20
  • java中的桥接模式是什么
    本篇内容主要讲解“java中的桥接模式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java中的桥接模式是什么”吧!目录引例桥接模式实战示例代码:总结引例需求:对不同手机类型的不同品牌(比...
    99+
    2023-06-20
  • 17款Unity开发游戏可以用到的插件
    本文介绍一下使用Unity开发游戏时,可以用到的一些插件,辅助游戏的开发效率!Ultimate Mobile Pro包含Unity与iOS和安卓原生api交互的插件,同时包含Admob插件,随意切换iOS和安卓部署,不需要更改任何代码。下面...
    99+
    2023-06-04
  • JavaScript设计模式中的桥接和中介者模式
    目录一、桥接设计模式桥接设计模式在工作中的使用二、JavaScript中介者模式生活中的中介者中介者设计模式案例业务中的中介者一、桥接设计模式 桥接设计模式是一种偏向于组合的设计模式...
    99+
    2024-04-02
  • Python设计模式中的结构型桥接模式
    目录一、桥接模式二、应用场景三、代码示例一、桥接模式 桥接模式,希望能够将一个事物的两个维度分离(解耦),使其都可以独立地变化,并通过桥梁连接起来。 (类)抽象部分(Abstract...
    99+
    2024-04-02
  • Python中的游戏开发模块pyglet的用法
    这篇文章主要讲解了“Python中的游戏开发模块pyglet的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python中的游戏开发模块pyglet的用法”吧!前言为什么我不选择pyga...
    99+
    2023-06-15
  • Golang设计模式中的桥接模式详细讲解
    目录桥接模式概念示例桥接模式 桥接是一种结构型设计模式, 可将业务逻辑或一个大类拆分为不同的层次结构, 从而能独立地进行开发。 层次结构中的第一层 (通常称为抽象部分) 将包含对第二...
    99+
    2023-01-11
    Go桥接模式 Go设计模式
  • win102004游戏模式如何开启
    本篇内容介绍了“win102004游戏模式如何开启”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!win102004游戏模式开启方法:点击左下...
    99+
    2023-07-01
  • win101903游戏模式怎么打开
    今天小编给大家分享一下win101903游戏模式怎么打开的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。简介: 打开专注助手在...
    99+
    2023-07-02
  • Javascript中怎么实现桥接模式
    Javascript中怎么实现桥接模式,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。基本理论桥接模式定义:将抽象部分与它的实现部分分离,使它们...
    99+
    2024-04-02
  • Java设计模式之桥接模式的实现
    桥接模式 桥接模式是将抽象部分与它的实现部分分离,使他们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。 ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作