이중 의미를 피하십시오
의도적으로 하나 이상의 의미가있는 단어를 선택했으며 첫 번째 결정은 문제입니다. 프로그래머에게는 문제가되는 수많은 단어가 있습니다. 또 다른 예는입니다 phone
. 당신은 할 수있는 phone
사람을, 또는 당신은있을 수 phone
주머니에.
게터와 세터 사용
대부분의 객체에 대한 표준 명명은 속성에 대한 getter / settings 메소드입니다.
Battery.Charge // would be a property
Battery.setCharge(value) // would set the property
Battery.getCharge() // would get the property
속성은 명사가 아닌 국가입니다
객체 속성을 명사로 분류하여 실수했다고 생각하고 변수도 상태를 생각할 수 있습니다. 그것들은 그들의 존재 범위와 관련된 상태입니다.
그들이 명사로 보유하고있는 가치를 설명 할 수는 있지만, 그것이 모든 경우에 해당되는지는 확실하지 않습니다.
OOP 용어에서 객체 속성은 해당 객체의 상태를 설명합니다. 귀하의 경우에는 Battery
객체이며 Charge
상태입니다. 그래서 그것은 객체의 속성이 될 것입니다, 그러나 이것은 그것이 어떻게 사용되는지에 달려 있습니다.
Charge
배터리 를 사용할 수 있어야하고 전류 Charge
가 무엇인지 알면 문제가있는 것입니다.
범위를 사용하여 컨텍스트 적용
문맥은 당신이 전달하고자하는 단어 나 방법의 의미를 명확히 할 것입니다. 범위는 객체 외부에서 속성 / 방법의 접근성을 설정합니다.
Batter._charge // a hidden private property
Battery.setCharge(value) // would set the private property
Battery.getCharge() // would get the private property
Battery.Charge() // would perform the Charge action
방법은 동사입니다
객체의 방법을 동사로 설명 할 수 있지만 동작이라는 단어가 더 적합합니다. OOP 용어에서는 객체의 방법을 사용하여 객체에 대한 작업을 수행합니다. 객체 외부에서 객체의 속성을 수정하는 것은 좋지 않습니다. 상태를 변경시키는 데 필요한 조치를 수행하는 메소드를 호출하는 것이 좋습니다.
이 단어 Charge
는 동사이지만 명사이기도합니다. 동작의 메소드를 호출하는데 사용될 때 동사가 사용되고 있다는 것이 분명해진다 Battery.Charge(....)
.
그러나 상황은 매우 중요합니다. 단어 Charge()
는 동사이지만 의미가 없습니다 startCharging()
.
유효한 방법을 Battery
포함 할 수있다 Charging
, Discharging
, setCharge
, getCharge
, hasCharge
, Discharge
와 Charged
.
간단한 한 단어 방법은 종종 명시 적으로 명확하게 자신의 행동을 언급하지 않지만, 같은 몇 가지 경우가 있습니다 open
와 close
약간의 설명이 필요한 곳은.
따라서 이러한 유형의 속성 / 방법의 이름을 지정하는 방법에 대한 정답은 없습니다. 혼동이 없도록 위의 기술을 현명하게 사용해야합니다.