菜鸟教程小白 发表于 2022-12-12 10:48:15

iOS 哪个是更好的设计比较传递整个类来查看或逐个设置


                                            <p><p>我有一个 <code>User</code> 类具有一些属性,例如姓名、电子邮件、位置。我还有另一个类
称为 <code>Post</code>,它具有一些属性,例如 <code>title</code>、<code>content</code> 和 <code>poster</code>,它是 <code>User 的一个实例</code>。 </p>

<p>有一个 ViewController,在 ViewController 内部有一个 <code>PostDetailView</code> 用于显示帖子的详细信息。现在 ViewController 有一个 post 对象,我需要将一些值传递给 <code>PostDetailView</code>。我有两个选择:</p>

<ol>
<li>通过初始化器传递整个<code>post</code>对象,这意味着<code>PostDetailView</code>有一个方法-initWithFrame:post。一旦 View 获得了帖子对象,它就可以获取帖子中的所有数据。</li>
<li><code>PostDetailView</code> 有一些setter 方法如<code>setTitle:</code>、<code>setContent</code>、<code>setPosterName</code> 等。Initializer 只初始化框架,然后使用 setter 传递值。</li>
</ol>

<p>选项 1 可以在 ViewController 中节省大量工作,但可能会增加耦合。选项 2 具有更好的结构(我认为),但需要在 View 和 ViewController 中进行额外的工作。因此,我的问题是哪一个在架构方面更好?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>将模型对象传递给 View 确实会增加不必要的耦合。设置单个字段更好,因为绑定(bind)逻辑在 Controller 中。</p>

<p>第三种选择是构建一个只包含 View 所需数据的类,并将该类的一个对象传递给 View ,而不是传递整个<code>Post</code>:</p>

<pre><code>@interface PostViewData : NSObject
@property (nonatomic, copy) NSString *title;
@property (nonatomic, copy) NSString *content;
@property (nonatomic, readonly) MyUser *poster;
@end
</code></pre>

<p>尽管仍然需要 Controller 来容纳特定于 View 的逻辑,但 View 仍然与模型隔离,并且代码变得明确了特定于 View 的数据的内容。</p></p>
                                   
                                                <p style="font-size: 20px;">关于iOS 哪个是更好的设计比较传递整个类来查看或逐个设置,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/24727739/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/24727739/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS 哪个是更好的设计比较传递整个类来查看或逐个设置