不要忘记注射和成分。 (迅捷4.2)

优秀开发人员的特性之一是预测项目中的更改并编写准备好应对这些更改的代码。 每个开发人员都知道依赖项注入和组合模式。 但是程序员经常不使用这些工具。 我的意思是,您经常会看到与网络一起使用的职责是一个单独的类,而另一个类则与数据库一起使用。 但是,较小的职责不会在单独的类中承担,而是属于某个模块的逻辑。 我认为这是不正确的,我将尝试解释如何进行更改。

如果您的困难模块看起来像是大正方形除以较小的正方形,那真的很好。 让我们尝试编写一些代码,然后以良好的方式对其进行重构。
我们的程序将包含一个图像和一个按钮,单击按钮后,该图像将带有alpha效果。

让我们编写代码。

首先,我们创建这个viewcontroller。

代码很简单,一切都很好。 现在,我想告诉您为什么此代码带有异味。 正如我之前所写的,将代码分成小块很重要,无论它是具有困难逻辑的大型服务还是仅用于呈现图像的助手。 在单独的类中,您需要分配所有单独的逻辑。 这是一个很好的例子,在单独的课程中,您可以处理图像。 下一步是重构。 🙂

最后一步是工厂。 这些控制器至少有两个配置。 Factory可以帮助您以一种更简单的方式生成新的控制器,并且通过这种模式,您可以随时为所有控制器装配零件。

有两种类型的图像渲染助手的工厂

上面,我试图向您展示,如果您在单独的类中组成甚至很小的逻辑块,也会更好。 我希望它是有趣和有用的。 如果您在代码中使用我的建议,那将是我的荣幸。