하나. 대체 원칙:
1. 하위 클래스는 기본 클래스로 대체 가능해야 하며 상위 클래스가 나타날 수 있는 모든 곳에 나타나야 합니다.
2. LSP 원칙으로 해결해야 할 문제:
a. 상속을 올바르게 설계하는 방법
b. 최상의 상속 계층을 얻는 방법
c. OCP 원칙을 준수하지 않는 상황
3. 이 원칙을 준수하는 방법:
a. 상위 클래스의 모든 메소드는 하위 클래스에서 구현되거나 다시 작성되어야 하며, 파생 클래스는 선언된 메소드만 구현합니다. 추상 클래스에는 있지만 중복된 메서드 정의나 구현은 제공할 수 없습니다.
b. 클라이언트 프로그램에서는 상위 클래스 개체만 사용해야 하며 하위 클래스 개체는 직접 사용하면 안 됩니다. 이를 통해 런타임 바인딩이 가능해집니다. (동적 다형성)
2. 예:
<?php abstract class Cache{ /* * 设置一个缓存变量 * * @param String $key 缓存key * @param mixed $value 缓存内容 * @param int $expire 缓存时间(秒) * return boolean 是否缓存成功 */ public abstract function set($key,$value,$expire=60); /* * 获得一个已经缓存的变量 * @param String $key 缓存key * @return mixed 缓存内容 */ public abstract function get($key); /* * 删除一个已经缓存的变量 * @return boolean 是否删除成功 */ public abstract function del($key); /* * 删除全部缓存变量 * @return boolean 是否删除成功 */ public abstract function delAll($key); /* * 检测是否已经存在对应的缓存 */ public abstract function has($key); }
저작권 표시: 이 기사는 블로거의 원본 기사이므로 블로거의 허가 없이 복제할 수 없습니다.
이상 내용의 측면을 포함하여 네 번째 객체지향 설계 원칙(8)을 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.