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