gpt4 book ai didi

objective-c - 将信息从 A 类委托(delegate)给 B 类再委托(delegate)给 C 类而不是直接从 A 类委托(delegate)给 C 是不是糟糕的编程设计?

转载 作者:搜寻专家 更新时间:2023-10-30 20:03:57 24 4
gpt4 key购买 nike

我打算制作一个包含钢琴键盘的应用程序。将有一个代表单个键的自定义类,这些键将是另一个自定义类(钢琴类)的 subview 。然后钢琴类的一个实例将被实例化到一个 View Controller 中。

我需要一个按键类,因为当触摸事件发生时,我需要知道按下的是哪个键。当触摸事件实际发生时,该键将通过委托(delegate)通知钢琴它是哪个键,钢琴将通过将相同的信息中继到 View Controller 来响应,也通过委托(delegate)。

我不希望信息从键直接传递到 View Controller 的原因是我不会在 vc 中直接实例化键类的实例,这样会更具可读性以前的方式。

将信息从钢琴键传递到 View Controller 是糟糕的设计吗?

最佳答案

这根本不是糟糕的设计。假设 View Controller 不知道钢琴 View 设置自己的方式(包括它添加了一堆 subview 来处理它的键),这只是按照正确的面向对象设计原则隐藏逻辑的一个例子.所有 View Controller 都应该知道它可以创建一个钢琴 View ,并且钢琴 View 会告诉它按下了哪些键。在您的实现中,这就是它所知道的一切。

当然,前提是钢琴 View 会为自己创建键 View 。如果您有一个钢琴 View ,其他人必须向其添加键,但随后希望收到键委托(delegate)消息,那么我认为根据需要了解彼此实现细节的参与者的数量,这是一个糟糕的设计。

关于objective-c - 将信息从 A 类委托(delegate)给 B 类再委托(delegate)给 C 类而不是直接从 A 类委托(delegate)给 C 是不是糟糕的编程设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7018801/

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