추상 류 의 간단 한 응용

10687 단어 추상 류
블 로그 의 글 목록 과 하나의 글 읽 기 를 통일 시 키 고 싶 습 니 다. sql 조회 문 구 를 제외 하고 HTML 코드 가 다 르 고 다른 것 도 마찬가지 라 고 생각 합 니 다.그 나 저 나 이 두 가 지 는 모두 주요 기능 이기 때문에 이것 은 확실히 좀 적합 하지 않다. 그러나 어젯밤 에 디자인 모델 을 조금 읽 었 는데 어쨌든 무엇 을 써 야 좋 을 지 모르겠다.
All right, 부모 클래스 postParent 는 추상 적 이 라 고 정의 합 니 다. 하위 클래스 는 buildHTML () 방법 을 다시 실현 해 야 합 니 다. 이 방법 은 괄호 가 들 어 있 지 않 습 니 다. 내용 이 있 든 없 든 잘못 보고 할 수 있 습 니 다.
지금 보면 볼 수록 이 코드 는 추상 류 를 전혀 사용 할 필요 가 없다 고 생각 합 니 다. 계승 으로 도 계 속 됩 니 다. 좋 습 니 다. 할 말 도 없 는 것 같 습 니 다.
그리고 나 는 my sql 을 밖 에 나 누 었 기 때문에 호출 방법 이 매우 번거롭다.
 1, 먼저 readArticle 를 예화 
 2, my sql 조회, 매개 변수 readArticle::getSQL();
 3, my sql 결과 자원 을 되 돌려 줍 니 다. readArticle::fetchResult( $result );
 4,readArticle::buildHTML(); 복귀 HTML
목록 순환 출력 이 라면 3 과 4 를 반복 해서 호출 하면 됩 니 다.
abstract class postParent
{
protected $querySQL;
public $fetchResult;
public $timeAgo; // eg : 2 days ago

abstract protected function buildHTML();

public function getSQL()
{
return $this->querySQL;
}
public function fetchResult( $result )
{
$this->fetchResult = mysql_fetch_assoc( $result );
}
public function error()
{}
}

class readArticle extends postParent
{
public function __construct( $id )
{
$this->querySQL =<<<eof
SELECT title
, author, text, unixtime FROM post
WHERE id
= $id ORDER BY unixtime DESC;
eof;

}

public function buildHTML()
{
return <<<eof
<div id="post-text">
<div class="post-title-div">
<h4>
<a href="http://foodstory.me/post.php?id={$this->fetchResult['id']}"
class="post-title-a" > {$this->fetchResult['title']}
</a>
</h4>
</div>
<div class="post-info-div">
<span class='post-info-author'>{$this->fetchResult['author']}</span> at
<time class='post-info-time'>{$this->timeAgo}</time>
</div>
<div class="post-p-div">
{
$this->fetchResult['text']}
</div>
</div>
eof;

}

}

좋은 웹페이지 즐겨찾기