查看Swift中的装饰

本文适用于开发人员,iOS爱好者以及在确保移动应用程序中的视觉连贯性方面遇到挑战的任何人。

让我解释。 有时,您的移动应用程序中不同类型的元素具有相同的外观,对吗? 他们是连贯的。 通常,实现此目标是有代价的:您最终编写了许多行重复的代码,希望这样做不会使所有内容的可维护性降低,并且在需要时也很难进行更改。

一种可能的解决方案: 常量

正确分组并正确使用常量可以解决不一致问题,但是可维护性和代码简单性不会显着提高。 一定有另一种方式……

在尝试找到一个简单,优雅的解决方案时,我想到了一个接口,该接口定义了一个入口点,用于在整个应用程序中自定义UIKit元素。 这个概念称为ViewDecorator

模式的核心是通过以下协议定义的,描述了装饰器对象的行为:

通过将外观包含在这些分隔符对象中,可维护性和可读性得到提高,重复代码行减少了。 想象一下,在更名的情况下修改组件的样式有多么容易。 😄

访问UIView子类的属性

由于协议采用特定的UIView类型,因此在尝试自定义特定的UIView子类属性时可能会遇到问题。

一种可能的解决方案可能是将视图实例转换为decorate(_ view: UIView)内的预期类型,但这会搞乱单一职责原则,并使其在不同种类的实例上的行为有所不同。

相关类型进行救援!

让我们看看装饰器对象如何变化:

很整洁吧?

我很高兴听到您对这个解决方案以及我可能没有想到的有趣用例的看法。

您也可以转到我的博客以获取更多文章。

Interesting Posts