티스토리 뷰
샘플
/**
* == 객체 지향 원칙 ==
* 바뀌는 부분을 캡슐화 한다.
* 상속보다는 구성을 활용한다.
* - 이유는 !!!
* 구현이 아닌 인터페이스에 맞쳐서 프로그래밍한다.
* 서로 상호작용하는 객체 사이에는 가능하면 느슨하게 결합하는 디자인을 사용한다.
* 클래스는 확장에 대해서는 열려 있지만 반면에 변경에 대해서는 닫혀있어야한다.
* 추상화된 것에 의존하라. 구상 클래스에 의존하지 않도록 한다.
* 친한 친구들하고만 연락한다.
* 먼저 연락하지 마세요. 저희가 연락 드리겠습니다.
* 어떤 클래스가 바뀌게 되는 이유는 한가지 뿐이어야 한다.
* 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 |
댓글