僅在您真正需要時才實現功能,而不是在您認為將來可能需要它們時才實現。
// Over-engineered solution anticipating future needs class UserService { private $database; private $cache; private $logger; private $notifications; private $analytics; public function __construct( DatabaseInterface $database, CacheInterface $cache, LoggerInterface $logger, NotificationService $notifications, AnalyticsService $analytics ) { $this->database = $database; $this->cache = $cache; $this->logger = $logger; $this->notifications = $notifications; $this->analytics = $analytics; } public function createUser($data) { $this->logger->info('Creating user'); $user = $this->database->insert('users', $data); $this->cache->set('user_' . $user->id, $user); $this->notifications->sendWelcomeEmail($user); $this->analytics->trackUserCreation($user); return $user; } }
class UserService { private $database; public function __construct(DatabaseInterface $database) { $this->database = $database; } public function createUser($data) { return $this->database->insert('users', $data); } }
// Bad: Implementing unused features class Product { private $name; private $price; private $stock; private $weight; // Not needed yet private $dimensions; // Not needed yet private $shippingZones; // Not needed yet private $taxCategories; // Not needed yet private $customFields; // Not needed yet public function calculateShipping($address) { // Complex shipping calculation that isn't required } public function calculateTax($country) { // Complex tax calculation that isn't required } } // Good: Implementing what's needed now class Product { private $name; private $price; private $stock; public function __construct(string $name, float $price, int $stock) { $this->name = $name; $this->price = $price; $this->stock = $stock; } }
以上是YAGNI(你不需要它)的詳細內容。更多資訊請關注PHP中文網其他相關文章!