Google
[1536]
 
 
 
 
 
 
 
 
 
 
 
 
¾×¼Ç½ºÅ©¸³Æ®  
 
 
 
 
 
 
 
 
 
 
 

[AJAX °­ÀÇ 5-7Àå]¿¡ À̾ À̹øÀå¿¡¼­´Â À̾ Àº´Ð(Encapsulatioin) ¿¡ ´ëÇØ¼­ ¼Ò°³ÇÑ´Ù.

 

°´Ã¼ÁöÇâ ¾ð¾î¿¡´Â Àº´ÐÀ̶ó´Â °³³äÀÌ ÀÖ´Ù. Ç¥ÇöÀÌ Á» ¾î·Á¿ïÁöµµ ¸ð¸£°ÚÀ¸³ª ¿ÜºÎ·Î °ø°³ÇÏ¸é ¾ÈµÇ´Â ¹«¾ùÀΰ¡ Áß¿äÇÑ °ÍÀ» °¨Ãß°í ÀÖ´Ù´Â ¶æÀÌ´Ù.

 

°´Ã¼ÁöÇâ ¾ð¾îÀÇ Å¬·¡½ºÀÇ °¡Àå Å« ÀåÁ¡ Áß Çϳª´Â Ŭ·¡½º¸¦ ÀνºÅϽºÈ­ÇÑ °´Ã¼¿¡ µ¥ÀÌÅ͸¦ ÀúÀåÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. ÇÏÁö¸¸ º¸¾ÈÀÇ Ãø¸é¿¡¼­ µ¥ÀÌÅ͸¦ º¸È£ÇÒ Çʿ伺µµ Àֱ⠶§¹®¿¡ ±× ¼ö´ÜÀ¸·Î½á Àº´ÐÀ» »ç¿ëÇÑ´Ù°í »ý°¢ÇÏ¸é µÈ´Ù. µ¥ÀÌÅ͸¦ °¨Ãá´Ù°í ¿ÜºÎ¿¡¼­ ÀüÇô »ç¿ëÇÏÁö ¸øÇÏ°Ô ÇÏ¸é ¾µ¸ð°¡ ¾øÀ¸¹Ç·Î Á¢±ÙÇÒ ¼ö ÀÖ´Â Åë·Î´Â ÃÖ¼ÒÇÑÀ¸·Î Á¦ÇÑÇÑ´Ù.

 

µ¥ÀÌÅ͸¦ °¨Ãß±â À§ÇÑ ¹æ¹ýÀ¸·Î Ŭ·¡½ºÀÇ ¸â¹ö¿¡ private Ű¿öµå¸¦ »ç¿ëÇÑ´Ù. ¿ÜºÎ¿¡¼­ µ¥ÀÌÅÍ¿¡ Á¢±ÙÇϱâ À§Çؼ­´Â public Á¢±ÙÀÚ¸¦ °¡Áö°í ÀÖ´Â setXxx(), getXxx() ¸Þ¼Òµå¸¦ »ç¿ëÇÑ´Ù.

 

°´Ã¼ÁöÇâ ¾ð¾î¿¡¼­ÀÇ °£´ÜÇÑ ¿¹¸¦ »ìÆìº¸ÀÚ.

 

public class Vehicle {
    private int wheelCount;//¹ÙÄû¼ö

    private int curbWeightInPounds;//¹«°Ô

    public Vehicle() {//»ý¼ºÀÚ
    }

    public int getCurbWeightInPounds() {
        return curbWeightInPounds;
    }

    public void setCurbWeightInPounds(int curbWeightInPounds) {
        this.curbWeightInPounds = curbWeightInPounds;
    }

    public int getWheelCount() {
        return wheelCount;
    }

    public void setWheelCount(int wheelCount) {
        this.wheelCount = wheelCount;
    }
}

 

À§ Vehicle Ŭ·¡½º¿¡´Â wheelCount, curbWeightInPounds ¶ó´Â µÎ°³ÀÇ ¸â¹ö¿Í setXxx(), getXxx() ¸Þ¼Òµå°¡ Á¸ÀçÇÑ´Ù. ¿ÜºÎ¿¡¼­´Â Vehicle Ŭ·¡½ºÀÇ ¸â¹ö¿¡ Á÷Á¢ÀûÀ¸·Î Á¢±ÙÇÒ ¼ö ¾ø°í setXxx(), getXxx() ¸Þ¼Òµå¸¦ »ç¿ëÇØ¾ß¸¸ ÇÑ´Ù.

 

ÀÌÁ¦ ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼­´Â Àº´ÐÀ» ¾î¶»°Ô »ç¿ëÇÒ ¼ö ÀÖ´ÂÁö ¼Ò°³ÇÑ´Ù.

www.crockford.com  ÀÇ Douglas Crockford ´Â ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼­ private ¸â¹ö¿Í public Á¢±ÙÀÚ ¸Þ¼Òµå ¹æ¹ý·ÐÀ» ¾Æ·¡¿Í °°ÀÌ Áõ¸íÇϰí ÀÖ´Ù.

 

ù°, private ¸â¹ö¸¦ »ý¼ºÇϱâ À§Çؼ­´Â »ý¼ºÀÚ ¾È¿¡¼­ Á¤ÀÇÇØ¾ß ÇÑ´Ù. var Ű¿öµå´Â »ç¿ëÇØµµ µÇ°í ¾È ÇØµµ »ó°ü¾ø´Ù.

 

µÑ°, public Á¢±ÙÀÚ ¸Þ¼Òµå¸¦ »ý¼ºÇϱâ À§Çؼ­´Â »ý¼ºÀÚ ¾È¿¡¼­ Á¤ÀÇÇØ¾ß ÇÑ´Ù. À̶§ ¹Ýµå½Ã this Ű¿öµå¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.

 

¿¹Á¦¸¦ »ìÆìº¸ÀÚ.

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>JavaScript Encapsulation</title>

<script type="text/javaScript">
function createVehicle() {
    var vehicle = new Vehicle();
    alert(vehicle.wheelCount);
    alert("wheelCount : "+vehicle.getWheelCount()+", curbWeightInPounds : "+vehicle.getCurbWeightInPounds());
    vehicle.setWheelCount(6);
    vehicle.setCurbWeightInPounds(5000);
    alert("wheelCount : "+vehicle.getWheelCount()+", curbWeightInPounds : "+vehicle.getCurbWeightInPounds());
}

 

function Vehicle() {//Vehicle Ŭ·¡½º »ý¼ºÀÚ
    var wheelCount = 4;//private ¸â¹öÁ¤ÀÇ
    var curbWeightInPounds = 4000;//private ¸â¹ö Á¤ÀÇ

 

    this.getWheelCount = function(){//pubic ¸Þ¼Òµå Á¤ÀÇ
        return wheelCount;
    }

 

    this.setWheelCount = function(count){//pubic ¸Þ¼Òµå Á¤ÀÇ
        wheelCount = count;
    }

 

    this.getCurbWeightInPounds = function(){//pubic ¸Þ¼Òµå Á¤ÀÇ
        return curbWeightInPounds;
    }

 

    this.setCurbWeightInPounds = function(weight){//pubic ¸Þ¼Òµå Á¤ÀÇ
        curbWeightInPounds = weight;
    }
}

</script>
</head>

<body>
  <h1>Examples of JavaScript Encapsulation</h1>
 
  <br/><br/>
  <button onclick="createVehicle();">Create an instance of Vehicle</button>
</body>
</html>

 

<encapsulation.html ÀÇ Àüü ¼Ò½º ÄÚµå>

 

À§ ¿¹Á¦¿¡¼­´Â Vehicle Ŭ·¡½º¸¦ Á¤ÀÇÇÒ¶§ »ý¼ºÀÚ ¾È¿¡¼­ wheelCount, curbWeightIPounds ¸¦ Á¤ÀÇÇϰí ÀÖÀ¸¹Ç·Î µÎ ¸â¹ö´Â ¸ðµÎ private ¼º°ÝÀ» °¡Áö°Ô µÈ´Ù. µû¶ó¼­ ¿ÜºÎ¿¡¼­´Â Á÷Á¢ÀûÀ¸·Î ÀÌ ¸â¹ö¿¡ Á¢±ÙÇÒ ¼ö ¾ø´Ù.

 

¶ÇÇÑ µÎ ¸â¹ö¿Í °ü·ÃµÈ getter ¹× setter ¸Þ¼Òµåµéµµ »ý¼ºÀÚ ¾È¿¡¼­ this Ű¿öµå·Î Á¤ÀÇÇϰí ÀÖÀ¸¹Ç·Î public ¼º°ÝÀ» ¶ç°Ô µÈ´Ù. ¿ÜºÎ¿¡¼­´Â ÀÌ ¸Þ¼Òµå¸¦ ÅëÇØ¼­¸¸ private ¸â¹öÀÇ µ¥ÀÌÅÍ¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Ù.

 

ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼­µµ °´Ã¼ÁöÇâ ¾ð¾îÀÇ Àº´Ð¿¡ ÇØ´çÇϴ À¯»çÇÑ ÇüÅÂÀÇ ±¸ÇöÀÌ °¡´ÉÇÏ´Ù´Â °ÍÀ» º¸¿©ÁÖ´Â »ùÇÃÀÌ´Ù.

 

À§ ¿¹Á¦ÀÇ Å×½ºÆ® °á°ú¸¦ »ìÆìº¸ÀÚ.

 

 


À§ ±×¸²Àº private ¼º°ÝÀ» ¶ç°í ÀÖ´Â wheelCount ¿¡ Á÷Á¢ÀûÀ¸·Î Á¢±ÙÇßÀ»¶§ÀÇ ¸ð½ÀÀÌ´Ù.
 

 

À§ ±×¸²Àº getWheelCount() ¹× getCurbWeightInPounds() ¸Þ¼Òµå¸¦ »ç¿ëÇØ¼­ private ¸â¹öÀÇ µ¥ÀÌÅ͸¦ Ãâ·ÂÇÑ ¸ð½ÀÀÌ´Ù.

 


 

À§ ±×¸²Àº setWheelCount() ¹× setCurbWeightInPounds() ¸Þ¼Òµå¸¦ ÀÌ¿ëÇØ¼­ private ¸â¹öÀÇ µ¥ÀÌÅ͸¦ ¼öÁ¤ÇÑ °á°ú¸¦ Ãâ·ÂÇÑ ¸ð½ÀÀÌ´Ù.

 

À§ ¿¹Á¦´Â ´Ù¿î¹Þ¾Æ Å×½ºÆ® ÇØ º¼ ¼ö ÀÖ´Ù.