티스토리 뷰

웹개발/Php

Apater 패턴 샘플

yaku 2017. 2. 6. 10:11
샘플 

/**
 * == 객체 지향 원칙 ==
 * 바뀌는 부분을 캡슐화 한다.
 * 상속보다는 구성을 활용한다.
 *     -  이유는 !!!
 * 구현이 아닌 인터페이스에 맞쳐서 프로그래밍한다.
 * 서로 상호작용하는 객체 사이에는 가능하면 느슨하게 결합하는 디자인을 사용한다.
 * 클래스는 확장에 대해서는 열려 있지만 반면에 변경에 대해서는 닫혀있어야한다.
 * 추상화된 것에 의존하라. 구상 클래스에 의존하지 않도록 한다.
 * 친한 친구들하고만 연락한다.
 * 먼저 연락하지 마세요. 저희가 연락 드리겠습니다.
 * 어떤 클래스가 바뀌게 되는 이유는 한가지 뿐이어야 한다.
 * 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
댓글
D-DAY
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함