开发思想-组合模式和接口多态的一点思考

一、组合模式在项目中用来干什么?

我理解用来创建一类对象最好用组合模式,比如三消游戏中的各种障碍,比如rpg中的各种武器和武器能力,比如Rogue游戏中的各种能力。

组合模式思想中如何创建一个对象,比如创建消除游戏中一个新的障碍,我新建一条配置,设置障碍不能被移动、可以被消除、设置层数为3并且每次触发消除层数-1等等,那么就创建了一个新的障碍,创建交给配置,程序只关心所有能力的实现。

那么游戏中可能只有一个Block对象,而不是有很多子类。

一个对象的行为不由继承树决定,而是由 配置 + 行为组件组合 决定。

添加新方块不需要添加新类,只要配置新的组合。

二、接口更适合在什么场景下用?

现在创建对象不需要用接口-继承-抽象类-多态这一套了,因为一个个对象都是用配置属性组装起来的。

那么什么时候用接口更好?

那就是系统之间的调用用接口,比如方块或障碍可以被点击,那么点击系统必然要持有方块,但是点击系统只需要持有一个接口IClickable,Block实现IClickable即可,点击系统并不需要知道Block实什么,不需要知道如何实现点击功能,只需要调用IClickalbe中的方法即可。接口被用做方块系统和点击系统之间的桥梁。

三、总结

今后的项目,创建对象的环节用组合模式。系统间的调用用接口做桥接。

相关推荐
梵克之泪3 小时前
【号码分离】从Excel表格、文本、word文档混乱文字中提取分离11位手机号出来,基于WPF的实现方案
开发语言·ui·c#
玩泥巴的4 小时前
使用.NET 8+ 与飞书API构建组织架构同步服务
c#·.net·二次开发·飞书
道一235 小时前
C# 读取文件方法介绍
开发语言·c#
Charles_go9 小时前
C#中级8、什么是缓存
开发语言·缓存·c#
用户83562907805120 小时前
如何在 C# 中自动化生成 PDF 表格
后端·c#
mudtools21 小时前
.NET如何快速集成飞书API的最佳实践
c#·.net·飞书
ThreePointsHeat1 天前
Unity 关于打包WebGL + jslib录制RenderTexture画面
unity·c#·webgl
a***97681 天前
如何使用C#与SQL Server数据库进行交互
数据库·c#·交互