티스토리 뷰
샘플
/**
 * == 객체 지향 원칙 ==
 * 바뀌는 부분을 캡슐화 한다.
 * 상속보다는 구성을 활용한다.
 *     -  이유는 !!!
 * 구현이 아닌 인터페이스에 맞쳐서 프로그래밍한다.
 * 서로 상호작용하는 객체 사이에는 가능하면 느슨하게 결합하는 디자인을 사용한다.
 * 클래스는 확장에 대해서는 열려 있지만 반면에 변경에 대해서는 닫혀있어야한다.
 * 추상화된 것에 의존하라. 구상 클래스에 의존하지 않도록 한다.
 * 친한 친구들하고만 연락한다.
 * 먼저 연락하지 마세요. 저희가 연락 드리겠습니다.
 * 어떤 클래스가 바뀌게 되는 이유는 한가지 뿐이어야 한다.
 * Interface Duck
 */
interface Duck
{
    function quick();
    function fly();
}
class JDuck implements Duck
{
    function quick()
    {
        echo "Quick";
    }
    function fly()
    {
        echo "Fly";
    }
}
interface Chil
{
    function goole();
    function fly();
}
class JChil implements Chil
{
    function goole()
    {
        echo "GGGGGGG~~~~~";
    }
    function fly()
    {
        echo "  -|- ";
    }
}
class DuckApter implements Duck
{
    public $_chil;
    function __construct($chil)
    {
        $this->_chil = $chil;
    }
    function quick()
    {
        $this->_chil->goole();
    }
    function fly()
    {
        for ($i = 0; $i < 5; $i++) {
            $this->_chil->fly();
        }
    }
}
$Chil = new jChil();
$Duck = new DuckApter($Chil);
$Duck->quick();
'웹개발 > Php' 카테고리의 다른 글
| 데코레이터패턴 샘플 (0) | 2017.02.06 | 
|---|---|
| 옵저버패턴샘플 (0) | 2017.02.06 | 
| 추상팩토리 패턴 샘플 소스 (0) | 2017.02.06 | 
| PHP COOK Book 책 정리하기 (0) | 2016.10.06 | 
| SQL 라이트 기본사용하기 ( Command Line Shell For SQLite) (0) | 2016.08.25 | 
					댓글