【发布时间】:2016-05-18 11:24:27
【问题描述】:
我正在快速编写一个 iOS 应用程序,就像我需要在多个屏幕中请求用户输入的每个应用程序一样。我想在设计我的应用程序时遵循良好的设计模式,我现在主要关注模型-视图-控制器设计模式。 我将专注于用户注册和登录屏幕来解释我的场景。 我有一个用户注册屏幕和一个登录页面,它们共享相似的输入字段,例如:电子邮件和密码
到目前为止,为了遵循 MVC 模式,我有以下课程:
模型类: User.swift
查看类: UserView.swift
控制器类: UserRegistrationViewController.swift、SignInViewController.swift
我现在在设计方面遇到的问题是,在每个视图控制器类中,我主要使用正则表达式来验证每个输入字段。正如您可能猜到的那样,这意味着我在两个视图控制器中都有大量重复的代码。例如,我在两个视图控制器中以完全相同的方式验证电子邮件和密码。 因此,我应该如何解决这个问题并仍然遵循 MVC? 我倾向于拥有一个 Validator 类,其中包含多个可以从每个视图控制器调用和重用的验证器函数,也可能是一个仅包含正则表达式的 Regex 类?还是应该是某种类型的属性文件?
【问题讨论】:
-
将功能提取到单独的一个或多个类中是移动它的合理方向。然后,您可以根据需要向控制器注入必要的验证器。
标签: ios swift validation design-patterns model-view-controller