6
|
devoured elysium · 技术社区 · 14 年前 |
![]() |
1
2
我认为你想给客户太多的自由。这一定让你很难处理。基于您所描述的,客户机似乎能够修改您的游戏的几乎所有部分——模型、逻辑、用户界面……我认为最好限制应用程序中的可修改区域,但通过常规公开一些区域
|
![]() |
2
2
对于算法和策略,我将定义接口和默认实现,并提供由您自己的实现扩展的抽象超类,以便所有样板代码都在抽象超类中。此外,我将允许客户机对IMPL进行子类化。只需执行一个以上的IMPL,就可以看到在哪里放置什么。 但最重要的是:给你的客户代码。如果他需要知道把代码放在哪里,他也应该能够看到您已经编码了什么。不需要隐藏东西。 |
![]() |
3
2
无论您提出什么设计,我都会错误地隐藏尽可能多的实现。一旦您公开了一个实现,就不能收回它(除非您准备好与您的客户机进行一场火焰战)。您可以在以后根据需要提供默认实现。
通常,我只从提供瘦接口开始。然后,在提供抽象类之前,我可以提供实用程序类(例如,
我建议你阅读 Effective Java 在设计面向对象的代码时,JoshBloch提供了一些有用的通用实践。 |
|
4
0
MVC/计算模式 您可以发布包的早期版本。 稍后,您可以根据用户需求升级它。 如果您明智地使用MVC或其他复合模式,我相信您也可以轻松地升级包。 |
![]() |
Schadre · C-plus编码错误 2 年前 |
![]() |
Nithin K · 即使类属性的类型正确,也会获取异常 2 年前 |
![]() |
amirreza870 · Python OOP-更改类文本 3 年前 |
![]() |
A_K · 使用cat或打印方法打印部分内容的子集闭包 3 年前 |
![]() |
Mo Fatah · 如何使用Python类打印数独板? 3 年前 |