切换功能的用处

时间:2010-04-13 18:45:36

标签: function toggle maintainability

编写明确做某事的函数(即HideForm / ShowForm等......)

是否更好?

或者编写'Toggle'类型函数(即ToggleVisibility)是否更好?

我发现Toggle类型的函数很麻烦,因为通过阅读代码很难跟踪状态。

在什么情况下切换类型功能有用吗?

2 个答案:

答案 0 :(得分:1)

我有时会在JavasScript中使用它来处理按钮(类似复选框)和可见性,但大多数情况下我都避免使用它,因为它更难以控制你想要处理的思维状态。

如果您不能或不能确定初始状态(但通常可以),那可能会很糟糕。无论如何,大多数情况下都不需要运行一些“simetric”或简单的代码,所以我不会去.toogle很多

答案 1 :(得分:0)

如果目标是可读性,则使用两个单独的函数。

我们可以:ShowXYZ()HideXYZ(),或ToggleXYZ(bool show)。后者只会在代码中显示为ToggleXYZ(true)ToggleXYZ(false),这使得每个人的行为有些不清楚。将它们作为两个单独的函数放在一起就不会猜测函数应该做什么。

我会延长你问的问题,因为还有另一种选择。为了在有两个或更多状态的情况下可扩展性,您可以利用您正在使用的语言(我在C#中提供示例,因此YMMV)。

因此,对于C#,您可以创建enum以提供不同的状态并为代码添加可读性。你可以有类似的东西:

SetXYZState(XYZState.Show)

SetXYZState(XYZState.MakeWaffles)

使用相同的函数签名时非常清楚。

这可以应用于你只有两种状态的情况(如果你以后可能只扩展一种情况,甚至只有一种状态),但是设置它的开销可能比简单地编写两个函数更多。