1
다른 개체를 만들기 위해 공장 패턴을 사용하려고합니다. 그러나 공장 패턴을 통해 다른 클래스 내부의 객체를 생성하면 단단히 결합되었는지 여부는 조금 혼란 스럽습니다. 예를 들어 : 팩토리 패턴과 밀 결합을 사용합니다.
class CarFactory
{
public static function createCar($type)
{
if ($type == 'sport') {
return new SportCar();
} elseif ($type == 'LuxuryCar' {
return new LuxuryCar();
}
}
}
interface Vehicle
{
public function drive();
}
class SportCar implements Vehicle
{
$speed = 'very fast';
public function drive()
{
return ' is driving sport car';
}
}
class LuxuryCar implements Vehicle
{
$speed = 'normal';
public function drive()
{
return ' is driving luxury car';
}
}
class DrivingApplication
{
public function __constructor($driverName, $carType)
{
$car = CarFactory::createCar($carType); //<------ HERE//
echo $driverName . $car->drive();
}
}
$app = new DrivingApplication();
는 그래서, DrivingApplication 클래스 안에, 내가 CarFactory를 사용하여 자동차 클래스를 만들었습니다. 제 질문은 :
- 여전히 견고한 커플 링을 가정합니까?
- DrivingApplication 클래스 외부에 car 객체를 만들고 종속 결합을 사용하여 밀 결합을 해결해야합니까 ??
- DrivingApplication 클래스 내에 생성 할 차 유형 만 식별 할 수 있다면 어떻게해야합니까 ??
왜 'VehicleFactory'라는 공장 클래스를 호출하지 않습니까? 귀하의 질문에 대답 클래스/코드를 보지 않고 열심히. 이것은 실제로 codereview.stackexchange.com에 더 적합한 질문 일 수 있습니다. –