[PHP] PHP interface
페이지 정보
작성자 sbLAB 댓글 0건 조회 1,258회 작성일 23-01-02 15:36본문
<?php
declare(strict_types=1);
//모니터 제조스펙 인터페이스
interface IMonitorMaker
{
public function makeProduct();
}
//모니터 제조스펙 데이타모델
class MonitorModel
{
public string $name;
public int $size;
function __construct($name, $size)
{
$this->name = $name;
$this->size = $size;
}
}
//삼성모니터 주문제품스펙
class SamsungMonitor implements IMonitorMaker
{
public function makeProduct()
{
return new MonitorModel("SAMSUMG-Samtron", 24);
}
}
//LG모니터 주문제품스펙
class LgMonitor implements IMonitorMaker
{
//override
public function makeProduct()
{
return new MonitorModel("LG-Ultra", 32);
}
}
//쇼핑몰주문사이트
class ShoppingSite
{
//IMonitorMaker monitorMaker 받을 준비
public function orderMonitor(IMonitorMaker $monitorMaker)
{
return $monitorMaker->makeProduct();
}
}
$shoppingSite = new ShoppingSite();
$myMonitorModel = $shoppingSite->orderMonitor(new SamsungMonitor());
print($myMonitorModel->name."---".$myMonitorModel->size);
print("\n");
$myMonitorModel = $shoppingSite->orderMonitor(new LgMonitor());
print($myMonitorModel->name."---".$myMonitorModel->size);
SAMSUMG-Samtron---24
LG-Ultra---32
[etc]
[같은 내용에 getter / setter 적용]
<?php
declare(strict_types=1);
//모니터 제조스펙 인터페이스
interface IMonitorMaker
{
public function makeProduct();
}
//모니터 제조스펙 데이타모델
class MonitorModel
{
private string $name;
private int $size;
public function getName()
{
return $this->name;
}
public function getSize()
{
return $this->size;
}
function __construct($name, $size)
{
$this->name = $name;
$this->size = $size;
}
}
//삼성모니터 주문제품스펙
class SamsungMonitor implements IMonitorMaker
{
public function makeProduct()
{
return new MonitorModel("SAMSUMG-Samtron", 24);
}
}
//LG모니터 주문제품스펙
class LgMonitor implements IMonitorMaker
{
//override
public function makeProduct()
{
return new MonitorModel("LG-Ultra", 32);
}
}
//쇼핑몰주문사이트
class ShoppingSite
{
//IMonitorMaker monitorMaker 받을 준비
public function orderMonitor(IMonitorMaker $monitorMaker)
{
return $monitorMaker->makeProduct();
}
}
$shoppingSite = new ShoppingSite();
$myMonitorModel = $shoppingSite->orderMonitor(new SamsungMonitor());
print($myMonitorModel->getName()."---".$myMonitorModel->getSize());
print("\n");
$myMonitorModel = $shoppingSite->orderMonitor(new LgMonitor());
print($myMonitorModel->getName()."---".$myMonitorModel->getSize());
SAMSUMG-Samtron---24
LG-Ultra---32
- 이전글[PHP] Multiple constructors in PHP 23.01.02
- 다음글[Slim + JWT] Registered claims 규칙 / Slim4 + JWT 적용 22.12.31
댓글목록
등록된 댓글이 없습니다.