- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 OOP 方面非常业余,使用 python 自学。
我主要关心的是如何将概念或实体分解为对象。
例如,我刚刚编写了一些代码来控制连接到我的树莓派的交通灯系统。
系统包含:
现在我最终将我的代码建模为一个完整的类。对象内部的方法调用对象中的其他方法。例如。当对象初始化时,初始化方法会调用“等待按钮按下”方法,当检测到按钮按下时,该方法会调用“运行灯光序列”方法。
这是不好的做法吗?每个概念/实体是否应该是一个单独的类/对象,例如交通灯对象、按钮对象、行人灯对象?
很抱歉问题的开放性。
感谢您的帮助。
最佳答案
您当前所拥有的内容违反了 Single Responsibility Principle 。基本上你的类(class)做得太多了。
您可以执行以下操作:
为汽车交通灯、行人交通灯和请求开始过马路的按钮设置单独的类。
之后,您可以将按钮类注入(inject)到行人灯类中。并将汽车和行人类注入(inject)“控制”/“管理”类,其中这些类用于管理灯光。
在此之后,您甚至可以进一步抽象它,例如将实际的灯注入(inject)交通灯类中。
您可能还想了解其他 SOLID principles .
关于python - 面向对象编程实践——概念/实体转化为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14358703/
目标:我想在设备上安装我的应用程序时从 iTunes 链接中获取我的自定义参数(引荐来源网址)。 iTunes 链接看起来像这样: https://itunes.apple.com/in/app/co
三维数据的获取方式 RGBD相机和深度图 代码展示:在pcl中,把点云转为深度图,并保存和可视化 三维数据的获取方式 在计算机视觉和遥感领域,点云可以通过四种主要的技术获得, (1)根据图像衍生而得,
这是拍摄 out of context所以看起来有点奇怪,但我有以下数据结构: use std::marker::PhantomData; pub struct Map { data: Vec
如何在用户注册时事通讯时运行此跟踪代码? var google_conversion_id = xxxxxx; var google_conversion_language = "e
对于我们的招聘网站,我们为每个与员工编号相关的员工提供了唯一的URL。然后,他们可以将其唯一的URL分配给其个性化页面。想知道是否有一种简单/最佳的方法来跟踪每个员工的表单生成的提交数量。即Todd通
网站 Saritias 情况 我的客户希望跟踪 Google Adwords 转化情况。当客户点击广告、访问网站,然后使用第 3 方预订小部件 ( ResDiary ) 预订餐 table 时,即可实
在我的 react PWA 上,我想在发送表单数据之后跟踪 Google Adwords 中的转化。我已经使用 react-ga 模块来跟踪使用 UA-xxxxxx 编号的页面浏览量。现在我有一个 A
不知道你是否能帮忙。 我们有一个电子商务网站。我们与 PayPal 和 WorldPay 集成进行付款,并将 secure.worldpay.com 和 paypal.com 添加到 Analytic
所以我已经安装了 Google Analytics,现在我想跟踪转化,但我希望转化代码仅在用户来自特定来源/媒介时运行,并忽略其余部分。可能吗? 最佳答案 您可以在分析过程中使用过滤器和/或分段来隔离
我想在同一页面上跟踪 2 个不同的 onclick 转化。 Google 的示例跟踪代码如下所示: /* */ 示例 onclick 代码如下所示: DO
我有一个 VueJS 应用程序,用户在其中提交表单。使用 Vue-resource 将数据发送到服务器。我需要告诉 Google 这是一次转换。 Google 给我的是一个脚本,告诉我放入“thank
我是一名优秀的程序员,十分优秀!