Oop 面向对象编程-子对象与全局对象(用例)

Oop 面向对象编程-子对象与全局对象(用例),oop,Oop,我希望这是一个正确的堆栈 我正在开发一款类似nethack的游戏,我想知道如何处理设计部分。现在我得到了类似Location、Npc、Item等类,但我遇到了一个问题,即如何轻松访问Location的部分内容 假设我有一个未继承的对象门。若玩家在里面的位置,很容易检查门是否打开。但另一方面,我通过以前的非对象实现获得了这个解决方案,我有一个脚本,在0600时打开了所有商店。但现在我需要遍历所有的LCIONS,检查里面是否有门,如果位置是商店,就打开它们。这真的是一种优化的方法吗 我也可以做像si

我希望这是一个正确的堆栈

我正在开发一款类似nethack的游戏,我想知道如何处理设计部分。现在我得到了类似Location、Npc、Item等类,但我遇到了一个问题,即如何轻松访问Location的部分内容

假设我有一个未继承的对象门。若玩家在里面的位置,很容易检查门是否打开。但另一方面,我通过以前的非对象实现获得了这个解决方案,我有一个脚本,在0600时打开了所有商店。但现在我需要遍历所有的LCIONS,检查里面是否有门,如果位置是商店,就打开它们。这真的是一种优化的方法吗

我也可以做像singelton这样的带门状态的环球赛,然后快速地跑过去——但这几乎不是一个OOP

这里有什么可能性

如果这个问题在某个地方涉及,请与我共享链接,这肯定足够了:

谢谢


Zaqen

在我看来,OOP的理论和实践是有区别的。如果你想学习OOP的基础知识或者写一篇关于OOP的论文,理论上的就可以了。在大多数其他情况下,你会喜欢一个实用的

为什么以及如何与您的问题相关

当我还是一个年轻的开发人员时,我非常痛苦地使我的代码合理化。我应该在类别产品、商店或消费者中对销售方法进行编码吗

然后我发现了,并在SaleHandler类中设置了我的销售方法

这就是你所说的单身。我更喜欢将其作为一个服务来实现,并使用一个框架来帮助我实现一些动态的功能。从这里开始,我有了我的数据类产品、存储。。。我的服务类也很快。我所有的逻辑都被编码在这些服务中。这不是纯理论上的面向对象编程,但它在处理不断增长的应用程序日益增加的复杂性方面帮了我很大的忙

我不知道如何在你的案例中使用这个,但我可以给你一些斜率:

服务类doors注册表,包含所有doors模式注册表。 用于开门的服务级开门器。 如果您不使用任何框架来帮助您做到这一点,那么您可以将您的服务实现为单例,但请注意

希望这是你期待的答案