커뮤니티

고용노동부, 산업인력공단과 함께하는 강원도 유일한 기업중심 IT전문교육기관 ICT융합캠퍼스만의 특별한교육입니다.
공인 IT숙련기술인의 다양한 접근방법으로 전문가다운 실무교육을 받을 수 있습니다.

Category

교육강좌

언어 PHP - abstract

페이지 정보

작성자 관리자 댓글 0건 조회 2,440회 작성일 20-06-10 13:48

본문

abstract

수업소개

abstract는 클래스의 메소드를 하위 클래스가 반드시 오버라이드 하도록 하는 것입니다. 이것을 통해서 부모 클래스의 일부 기능을 하위 클래스가 구현하도록 강제할 수 있습니다. 

이 수업에서는 디자인 패턴이 무엇인가를 설명합니다. 그 중에서 템플릿 메소드 패턴을 통해서 추상 클래스가 사용되는 구체적인 사례를 살펴봅니다. 

수업

소개

형식

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
abstract class ParentClass
{
public function a()
{
echo 'a';
}
public abstract function b();
}
class ChildClass extends ParentClass
{
public function b()
{
}
}

 

사례 : 템플릿 메소드 패턴

템플릿 메소드 패턴 구현

 

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php
abstract class AbstractPageTemplate
{
protected final function template()
{
$result = $this->header();
$result .= $this->article();
$result .= $this->footer();
return $result;
}
protected abstract function header();
protected abstract function article();
protected abstract function footer();
public function render()
{
return $this->template();
}
}
class TextPage extends AbstractPageTemplate
{
protected function header()
{
return "PHP\n";
}
protected function article()
{
return "PHP: Hypertext Preprocessor\n";
}
protected function footer()
{
return "website is php.net\n";
}
}
class HtmlPage extends AbstractPageTemplate
{
protected function header()
{
return "<header>PHP</header>\n";
}
protected function article()
{
return "<article>PHP: Hypertext Preprocessor</article>\n";
}
protected function footer()
{
return "<footer>website is php.net</footer>\n";
}
public function render()
{
$result = '<html>';
$result .= $this->template();
return $result.'</html>';
}
}
echo '<h1>text</h1>';
$text = new TextPage();
echo $text->render();
echo '<h1>html</h1>';
$html = new HtmlPage();
echo $html->render();

 

  • 트위터로 보내기
  • 페이스북으로 보내기
  • 구글플러스로 보내기

답변목록

등록된 답변이 없습니다.