MAVIC 1.0.2

MAVIC 1.0.2

Filip Busic 维护。



MAVIC 1.0.2

  • 作者:
  • Filip Busic

MAVIC

MAVIC 是一个 Objective-C 设计模式,是许多 iOS 应用程序的基础。MAVIC 的名字是继承自其用途,即模型(自动)交互视图控制器,然而,并不是通过其自然的首字母缩略词 MAIVC(注意拼写),而更像是该模式的自然发音。

MAVIC 模式提供以下内容:

  • 干净的视图控制器。 MAVIC 将繁琐的工作从视图控制器中分离出来,使得类尽可能地解耦。这将不仅从测试的角度受益您的代码,而且确保您的架构更具协作性,便于开发者访问,因为这不会为 MVC 模式臭名昭著的额外代码行添加代码。
  • 可测试性和通用性。 为了最大限度地可用,iOS 中的类必须尽可能地相互独立。这正是 MAVIC 用(自动)交互器所做的,允许每个组件分别进行测试,然后在最后像拼图一样组合起来。这样,视图控制器只需将信息从交互器传递到视图,并无需自身负责任何重操作的工作。
  • 动态类初始化器。 MAVIC 核心概念是 动态初始化交互器,并允许您发送 未解析的消息 而不会打扰编译器。作为额外的奖励,由于交互器是懒加载的,它只有在需要时才会初始化。

安装

最快的方式是通过使用 Cocoapods。只需将以下行添加到您的 Podfile 中:

pod 'MAVIC', '~> 1.0'

关于使用 MAVIC 的快速演示,请参阅 Example 目录中 LoginViewController 的 .h/.m 文件。

它是如何工作的?

MAVIC的魔力源于利用Clang编译器。更具体地说,通过结合协议与__kindof关键字,我们不再需要指定使用哪个交互器为相应的视图控制器。然后,通过结合动态初始化交互器和懒加载的能力,我们在无需手动初始化的情况下,自动获得一个就绪的交互器,从而获得好处。

我可以看到它的工作吗?

当然可以!首先,只需简单地克隆或下载一个仓库副本,然后在示例目录运行 pod install。然后您可以在LoginViewController.m文件中开始探索MAVIC的强大功能。

是谁创建了它?

MAVIC是由Filip Busic(喜欢曲奇饼的家伙)编写的。如果您有任何问题或想法,希望改进MAVIC,请轻松通过LinkedIn给作者发消息。

致谢

感谢Uber发布RIBs,启发了MAVIC的创建。请注意,如果您使用Swift,RIBs可能更为合适。然而,由于RIBs不支持Objective-C,这可能成为尝试MAVIC的动机。

许可

Copyright (C) 2018 Filip Busic

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   https://apache.ac.cn/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.