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

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

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

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

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

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

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

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

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

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

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

三、总结

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

相关推荐
ejjdhdjdjdjdjjsl2 小时前
C#类型转换与异常处理全解析
开发语言·c#
我是唐青枫4 小时前
深入理解 C#.NET Parallel:并行编程的正确打开方式
开发语言·c#·.net
yue0084 小时前
C# ASCII和字符串相互转换
c#
TypingLearn5 小时前
Perigon.CLI 10.0 重磅发布【AspNetCore开发模板和辅助工具】
c#·.net·aspnetcore
Sheep Shaun6 小时前
STL中的map和set:红黑树的优雅应用
开发语言·数据结构·c++·后端·c#
kylezhao20198 小时前
C# 中常用的定时器详解
开发语言·c#
秋雨雁南飞9 小时前
C# 动态脚本执行器
c#·动态编译
月巴月巴白勺合鸟月半9 小时前
用AI生成一个简单的视频剪辑工具 的后续
c#
钰fly10 小时前
Windows Forms开发工具与功能总结表
前端·c#
lzhdim10 小时前
C#性能优化:从入门到入土!这10个隐藏技巧让你的代码快如闪电
开发语言·性能优化·c#