PHP 생성자 오버로딩

PHP에서는 기본적으로 생성자 오버로딩이 되지 않는다.
다른 방법으로는 func_get_args()를 이용한 방법과 팩토리 패턴을 이용한 방법이 있는데,
func_get_args()를 이용하게 되면 인수를 검사기 위해 코드가 지저분해 질 수 있다.
때문에 팩토리 패턴을 이용하는 방법을 추천한다.

팩토리 패턴을 이용

class Poo
{
    protected $name;
    public function __construct()
    {
    }
    public static function withName($name)
    {
        $instance = new self();
        $instance->setName($name);
        return $instance;
    }
    public function setName($name)
    {
        $this->name = $name;
    }
    public function getName()
    {
        return $this->name;
    }
}
$poo = Poo::withName('홍길동');

댓글 남기기