SingleResponsibilityPrinciple - marmot-cn/marmot-framework GitHub Wiki
单一职责原则(SRP)
概述
简单来说让一个类、一个函数只干一件事情。如果这个类、函数实现太多的概念会导致不易理解(代码可读性)。
示例
这里我们以一个函数为例,我们首先有一个检查分销商品的功能,该检查需要细分为:
- 该商品是否上架
- 该商品是否不属于自己
- 该商品是否没有被采购(如果没采购则不能出售)
protocted function verifyDistributionProduct() : bool
{
return $this->isDistributionProductOnSale()
&& $this->isDistributionProductNotPurchased()
&& $this->isDistributionProductNotBelongToSelf();
}
private function isDistributionProductOnSale() : bool
{
if (!$this->getDistributionProduct()->isOnSale()) {
Core::setLastError(PURCHASE_DISTRIBUTION_PRODUCT_STATUS_INCORRECT);
return false;
}
return true;
}
private function isDistributionProductNotPurchased() : bool
{
# code...
}
private function isDistributionProductNotBelongToSelf() : bool
{
# code...
}