【发布时间】:2017-07-21 05:24:08
【问题描述】:
假设在一个电子商务网站上,有两种方法可以添加商品,一种来自目录,一种来自购物车...
<btn class="add_item" data-type="cart"></btn>
<btn class="add_item" data-type="catalog"></btn>
因为这两个函数都是关于添加项目的,所以有很多重叠之处。但是,由于它们发生在不同的地方,因此也存在一些差异。是否有关于哪种代码格式遵循标准原则(例如 SRP、DRY 等)的约定?
我特意询问了一个约定,因为我正在尝试编写更多“标准”代码。 FWIW,从历史上看,我一直使用选项 B,我觉得这最终使我走上了非常长的函数的道路,其中嵌套的 if/thens 令人困惑。
选项 A
$(".add_item[data-type='cart']").click(function() {
doSomethingUniqueToCart();
doSomethingSharedToAdd();
})
$(".add_item[data-type='catalog']").click(function() {
doSomethingUniqueToCatalog();
doSomethingSharedToAdd();
})
选项 B
$(".add_item").click(function() {
if ($(this).data("type") == "cart") {
doSomethingUniqueToCart();
} else {
doSomethingUniqueToCatalog();
}
doSomethingSharedToAdd();
})
【问题讨论】: