๐Ÿ“œ CleanCode

[CleanCode]๊ฐ์ฒด์™€ ์ž๋ฃŒ๊ตฌ์กฐ 1

๋‰ด์ด NUEY 2024. 9. 23. 18:21
๋ฐ˜์‘ํ˜•

 

๊ฐ ๋ณ€์ˆ˜๋งˆ๋‹ค get/set ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•œ๋‹ค๋ฉด ๊ตฌํ˜„์„ ์™ธ๋ถ€๋กœ ๋…ธ์ถœํ•˜๋Š” ์…ˆ์ด๋‹ค.
๋ณ€์ˆ˜ ์‚ฌ์ด์— ํ•จ์ˆ˜๋ฅผ ๋„ฃ๋Š”๋‹ค๊ณ  ๊ตฌํ˜„์ด ๊ฐ์ถฐ์ง€์ง„ ์•Š๊ธฐ์— ์ถ”์ƒํ™”๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

์ด๋ ‡๊ฒŒ ์ž๋ฃŒ๋ฅผ ์„ธ์„ธํ•˜๊ฒŒ ์ˆซ์žgallon๋ฅผ ํ‘œ๊ธฐํ•˜๊ธฐ๋ณด๋‹ค๋Š”
% ํผ์„ผํŠธ์™€ ๊ฐ™์€ ์ถ”์ƒ์ ์ธ ํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒŒ ์ข‹๋‹ค.


๊ฐ์ฒด ↔ ์ž๋ฃŒ๊ตฌ์กฐ
๊ฐ์ฒดObject๋Š” ์ถ”์ƒํ™” ๋’ค๋กœ ์ˆจ๊ธด ์ฑ„ ํ•จ์ˆ˜๋งŒ ๊ณต๊ฐœํ•œ๋‹ค.
์ž๋ฃŒ๊ตฌ์กฐ๋Š”Data structure ์ž๋ฃŒ๋ฅผ ๊ทธ๋Œ€๋กœ ๊ณต๊ฐœํ•˜๋ฉฐ ๋ณ„๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค.
๋‘ ๊ฐœ๋…์€ ๊ฑฐ์˜ ์ •๋ฐ˜๋Œ€๋‹ค.

 

์•„๋ž˜ ๊ฐ™์€ ๋‚ด์šฉ์˜ ์ฝ”๋“œ๋ฅผ ์ ˆ์ฐจ์ง€ํ–ฅ/๊ฐ์ฒด์ง€ํ–ฅ ๊ตฌ์กฐ๋กœ ์•Œ์•„๋ณด์ž.


์ ˆ์ฐจ์ง€ํ–ฅ ๊ตฌ์กฐ

์ฑ…์— ๋‚˜์˜จ ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ :Pointํด๋ž˜์Šค ๊ตฌํ˜„ํ•ด ์ถ”๊ฐ€ํ–ˆ๋‹ค. ๋ณ€์ˆ˜๋งŒ ์„ ์–ธ๋˜์–ด ์žˆ๋Š” ๋„ํ˜• ํด๋ž˜์Šค๋“ค์ด ์–ด์ด์—†์–ด ๋ณด์ผ ์ˆ˜๋„ ์žˆ์ง€๋งŒ
๋งŒ์•ฝ area() ๋ง๊ณ ๋„ ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ๋”ํ•ด์•ผ ํ•œ๋‹ค๋ฉฐ Geometryํด๋ž˜์Šค์— ์ถ”๊ฐ€๋งŒ ํ•˜๋ฉด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ƒˆ๋กœ์šด ๋„ํ˜•์„ ์ถ”๊ฐ€ํ•œ๋‹ค๋ฉด Geometryํด๋ž˜์Šค์˜ ํ•จ์ˆ˜ ๋ชจ๋‘๋ฅผ ๊ณ ์ณ์•ผ ํ•œ๋‹ค.


๊ฐ์ฒด์ง€ํ–ฅ ๊ตฌ์กฐ

์ƒˆ ๋„ํ˜•์„ ์ถ”๊ฐ€ํ•˜๊ธฐ์—๋Š” ํŽธํ•˜์ง€๋งŒ area() ์™ธ ์ƒˆ๋กœ์šด ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋‹ค๋ฅธ ๋ชจ๋“  ๋„ํ˜• ํด๋ž˜์Šค๋ฅผ ๊ณ ์ณ์•ผ ํ•˜๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.


 

์ด๋ ‡๋“ฏ ๊ฐ์ฒด์ง€ํ–ฅ/์ ˆ์ฐจ์ง€ํ–ฅ ๊ตฌ์กฐ๋Š” ๋ฐ˜๋Œ€๋˜๋ฉฐ ๊ฐ ์žฅ๋‹จ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

  • ์ ˆ์ฐจ์ ์ธ ์ฝ”๋“œ๋Š” ๊ธฐ์กด ์ž๋ฃŒ๊ตฌ์กฐ(๋„ํ˜•)๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ์ƒˆ ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์‰ฝ๊ณ 
    ↔ ์ž๋ฃŒ ๊ตฌ์กฐ class๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ํ•จ์ˆ˜๋ฅผ ๋ชจ๋‘ ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค.
  • ๊ฐ์ฒด์ง€ํ–ฅ์€ ๊ธฐ์กด ํ•จ์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ์ƒˆ ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์‰ฝ๋‹ค.
    ↔ ์ƒˆ๋กœ์šด ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋‹ค๋ฅธ ๋ชจ๋“  ํด๋ž˜์Šค๋ฅผ ๊ณ ์ณ์•ผ ํ•œ๋‹ค.
๋ณต์žกํ•œ ์‹œ์Šคํ…œ์ผ ์ˆ˜๋ก ์ƒˆ๋กœ์šด ์ž๋ฃŒํƒ€์ž…์ด ์ถ”๊ฐ€๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์œผ๋ฏ€๋กœ ๊ฐ์ฒด์ง€ํ–ฅOOP๊ฐ€ ์ ํ•ฉํ•˜๋‹ค.
๊ณ ์ •๋œ ์ž๋ฃŒํƒ€์ž…์œผ๋กœ ๊ธฐ๋Šฅ๋งŒ ์กฐ๊ธˆ์”ฉ ์ถ”๊ฐ€๋˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์ ˆ์ฐจ์  ์ฝ”๋“œ์™€ ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ๋” ์ ํ•ฉํ•˜๋‹ค.
๋ฐ˜์‘ํ˜•