我刚刚开始使用 Go (GoLang),我发现它是一种很棒的语言。但是,经过多年的UML和面向对象的方法,我发现建模Go程序(逆向工程)有点问题,因为Go Structs包含属性/状态,但没有方法,以及使用Structs作为参数的方法/函数(即使是那些可以使 Struct 看起来像对象的魔法),不包含方法或状态。这是否意味着我应该使用另一种方法论来为 Go 程序建模,或者 UML 是否对语言结构进行了充分建模?是的,我知道如果您在结构上使用方法,UML 中对象的行为可以通过结构和结构方法的组合映射到 Go,但我发现这是错误的,范式中的阻抗不匹配排序。是时候采用一种新的(消灭思想!)图表技术,为行为不再受对象控制的美丽新世界了吗?行为是否可以在不参考其影响的状态的情况下建模?更新:我正在尝试数据流图,看看它们是否更适合范式。到目前为止一切顺利,但我认为当我对结构的方法进行建模时,我会陷入困境,DFD 中的妥协是它们被视为函数。:(Go支持继承!!!啊啊啊!!!(头被吹干净了。)你可以组合一个由另一个结构组成的结构,它有方法,子结构现在继承......你明白了吗?我的心都碎了。意味着 UML 是有效的......完全但感觉很脏。Go 不支持继承,只是看起来如此。:) DFD 就是这样!
3 回答
鸿蒙传说
TA贡献1865条经验 获得超7个赞
UML 仍然为您提供对组件、接口和数据的分析和设计有用的工具。Go 不是面向对象的语言,因此您不能使用继承、多态、方法等。您不需要新范式,您可能需要一个旧范式:结构化分析和结构化设计。
- 3 回答
- 0 关注
- 206 浏览
添加回答
举报
0/150
提交
取消