Query Method ¶
κ°μ²΄μ μμ±μ ν
μ€νΈνλ €λ©΄ μ΄λ»κ² ν κ²μΈκ°? λ κ°μ§λ₯Ό κ²°μ ν΄μΌ νλ€. 첫째λ 무μμ 리ν΄ν κ²μΈκ°μ΄κ³ , λμ§Έλ μ΄λ¦μ μ΄λ»κ² μ§λλλ€.
~cpp
class Switch
{
private:
string status;
/* ... */
public:
void makeOn() {
status = "on";
}
void makeOff() {
status = "off";
}
string& getStatus() {
return status;
}
/* ... */
};
class Light
{
/* ... */
void makeOn() {
/* ... */
}
};
class WallPlate
{
private:
Switch* switch;
Light* light;
/* ... */
public:
/* ... */
void update() {
if( switch->getStatus() == "on" )
light->makeOn();
else if( switch->getStatus() == "off" )
light->makeOff();
}
};
μ΄κ²μ λ κ°μ²΄ μ€μ νλλ₯Ό 리ν΄νλ λ°©λ²μ΄λ€. λ± λ³΄κΈ°μλ λκ° μ°μ°ν΄ 보μΈλ€. νμ§λ§ μ΄ λ°©λ²μ ν΄λΌμ΄μΈνΈλ‘ νμ¬κΈ Switchκ° μνλ₯Ό μ΄λ»κ² μ μ₯νκ³ μλμ§ μμμΌλ§ νκ² ν΄μ€λ€.
μ΄λ₯Ό ν΄κ²°ν΄κΈ° μν΄, νλμ λ©μΈμ§ - Booleanμ 리ν΄νλ - μλ€κ° μ²λ¦¬νλ λ°©λ²μ΄ μλ€.
~cpp
class Switch
{
private:
bool status;
/* ... */
public:
bool isOn() {
return status;
}
/* ... */
};
class Light
{
/* ... */
void makeOn() {
/* ... */
}
};
class WallPlate
{
private:
Switch* switch;
Light* light;
/* ... */
public:
/* ... */
void update() {
if ( switch->isOn() )
light->makeOn();
else
light->makeOff();
}
};
Booleanμ 리ν΄νλ λ©μλλ₯Ό λ§λ€κ³ , μ΄λ¦μ μ λμ¬μ beλμ¬μ μ¬λ¬ ννλ₯Ό μ μ΄μ€λ€.(is,was...)
See Also ReplaceTempWithQuery









