gpt4 book ai didi

python - 面向对象编程实践——概念/实体转化为对象

转载 作者:太空宇宙 更新时间:2023-11-03 19:07:22 24 4
gpt4 key购买 nike

我在 OOP 方面非常业余,使用 python 自学。

我主要关心的是如何将概念或实体分解为对象。

例如,我刚刚编写了一些代码来控制连接到我的树莓派的交通灯系统。

系统包含:

  • 一辆汽车触发了交通灯(红、黄、绿)。
  • 请求过境的按钮。
  • 还有绿灯和红灯告诉行人何时过马路

现在我最终将我的代码建模为一个完整的类。对象内部的方法调用对象中的其他方法。例如。当对象初始化时,初始化方法会调用“等待按钮按下”方法,当检测到按钮按下时,该方法会调用“运行灯光序列”方法。

这是不好的做法吗?每个概念/实体是否应该是一个单独的类/对象,例如交通灯对象、按钮对象、行人灯对象?

很抱歉问题的开放性。

感谢您的帮助。

最佳答案

您当前所拥有的内容违反了 Single Responsibility Principle 。基本上你的类(class)做得太多了。

您可以执行以下操作:

为汽车交通灯、行人交通灯和请求开始过马路的按钮设置单独的类。

之后,您可以将按钮类注入(inject)到行人灯类中。并将汽车和行人类注入(inject)“控制”/“管理”类,其中这些类用于管理灯光。

在此之后,您甚至可以进一步抽象它,例如将实际的灯注入(inject)交通灯类中。

您可能还想了解其他 SOLID principles .

关于python - 面向对象编程实践——概念/实体转化为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14358703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com