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

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

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

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

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

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

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

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

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

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

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

三、总结

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

相关推荐
Scout-leaf16 小时前
WPF新手村教程(三)—— 路由事件
c#·wpf
用户2986985301419 小时前
程序员效率工具:Spire.Doc如何助你一键搞定Word表格排版
后端·c#·.net
mudtools2 天前
搭建一套.net下能落地的飞书考勤系统
后端·c#·.net
玩泥巴的2 天前
搭建一套.net下能落地的飞书考勤系统
c#·.net·二次开发·飞书
唐宋元明清21882 天前
.NET 本地Db数据库-技术方案选型
windows·c#
lindexi2 天前
dotnet DirectX 通过可等待交换链降低输入渲染延迟
c#·directx·d2d·direct2d·vortice
qq_454245033 天前
基于组件与行为的树状节点系统
数据结构·c#
bugcome_com3 天前
C# 类的基础与进阶概念详解
c#
雪人不是菜鸡3 天前
简单工厂模式
开发语言·算法·c#
铸人3 天前
大数分解的Shor算法-C#
开发语言·算法·c#