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

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

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

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

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

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

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

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

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

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

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

三、总结

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

相关推荐
yue0081 天前
C# winform自定义控件
开发语言·c#
_Cherry|1 天前
Unity读取文件夹内容
unity·c#
张人玉1 天前
C#通信精讲系列——C# 通讯编程基础(含代码实例)
开发语言·c#·c#通信
小熊熊知识库1 天前
C# Ollama 实战聊天小案例实现
开发语言·c#
arron88991 天前
WebApi 部署到win7 IIS详细步骤
c#
零点零一1 天前
C# 的 out 参数:全面解析与最佳实践
c#
c#上位机1 天前
halcon获取区域中心坐标以及面积——area_center
图像处理·计算机视觉·c#·halcon
Scout-leaf1 天前
WPF新手村教程(一) - 走不出新手村别找我
c#·wpf
璞瑜无文1 天前
Unity 游戏开发之布局(二)
unity·c#·游戏引擎
用户8356290780511 天前
C# 实现 XML 转 Excel:从解析到生成 XLSX 的详细步骤
后端·c#