Computer >> 컴퓨터 >  >> 프로그램 작성 >> Ruby

클래스를 만드는 이유는 무엇입니까?

지난 기사에 이어 왜 우리는 nil을 사용합니까? 우리가 당연하게 여기는 다른 것들에 대해 이 질문을 하는 것이 좋은 생각이라고 생각했습니다.

좋아요...

왜 우리는 못생긴 코드의 거대한 덩어리 하나 대신 클래스를 사용합니까?

기본적인 수준에서 우리는 클래스를 사용하여 코드와 데이터를 논리 단위로 구성합니다.

하지만 그 이상의 것이 있습니다.

클래스를 사용하면 추상화를 만들 수 있습니다. .

추상화란 무엇입니까?

당신은 매일, 매분 추상화를 사용합니다.

키보드 다음으로 구성되어 있습니다.

  • 케이블
  • Cherry MX 블랙 스위치
  • 모든 것을 하나로 묶는 플라스틱 케이스
  • 내 컴퓨터에 전기 신호를 전송하는 회로 기판

키보드는 이러한 것들을 올바른 방식으로 조합할 때 나오는 개념일 뿐입니다.

내부적으로 어떻게 작동하는지 알 필요가 없기 때문에 추상화입니다. 그것을 사용합니다. 구성 요소를 알 필요도 없습니다!

플러그를 꽂고 입력하기만 하면 됩니다.

이것이 바로 수업을 통해 할 수 있는 일입니다.

추상화가 왜 중요한가요?

추상화는 복잡성을 관리하는 데 도움이 됩니다. .

스티브 맥코넬이 말했듯이:

<블록 인용>

가장 중요한 클래스를 만드는 이유는 프로그램의 복잡성을 줄이기 "

추상화는 이를 어떻게 수행합니까?

세부정보 숨기기 어떤 것이 어떻게 작동하고 공개 인터페이스를 통해 서비스를 노출하는지에 대해.

Ruby 클래스에서 인터페이스는 공용 메소드로 구성됩니다. 자세한 내용은 비공개 방법으로 숨겨져 있습니다.

클래스를 만드는 이유는 무엇입니까?

세부정보 포함 제 말은:

  • 인스턴스 변수
  • 내부 방법
  • 알고리즘 및 데이터 구조

숨겨져 있으면 클래스 사용자에게 영향을 주지 않고 원할 때 언제든지 변경할 수 있습니다.

예를 들어 :

GPS가 있는 경우 배열을 사용하여 데이터를 저장하는 클래스이며 인덱스 0에 대해 알아야 합니다. 해당 배열에서 위도 및 색인 1을 찾을 수 있습니다. 경도는 알 필요가 없는 세부정보입니다. 클래스의 사용자로.

좋은 수업을 작성하는 방법

이제 이것은 큰 주제입니다. .

SOLID 원칙을 따르는 것과 같이 좋은 수업을 만들기 위해 많은 것이 필요합니다.

그러나 가장 중요한 것은 수업에 일종의 역할이 있어야 한다는 것입니다. , 임의의 방법으로 구성되지 않습니다.

예를 들어 비즈니스 로직(계산, 규칙)은 역할이 다르기 때문에 프레젠테이션 로직(서식)과 분리하려고 합니다.

이 코드 보기 :

require 'rest-client'
require 'nokogiri'

class ImageCounter
  def initialize(url)
    @url = url
  end

  def find_images_and_report
    data   = RestClient.get(@url).body
    html   = Nokogiri::HTML.parse(data)
    images = html.css("img")

    report = ""
    report << "=" * 40 << "\n"
    report << "Found #{images.size} images on #{@url} \n"
    report << "=" * 40 << "\n"
  end
end

reporter = ImageCounter.new("rubyguides.com")
report   = reporter.find_images_and_report

이 수업이 계산과 프레젠테이션 모두에 어떻게 관련되어 있는지 알 수 있습니다. "빠르고 더러운" 스크립트를 작성하는 경우에는 이 방법이 적합하지만 더 심각한 응용 프로그램의 경우에는 스크립트를 분리해야 합니다.

책임을 분리할 때 다른 프레젠테이션 레이어를 연결하거나 비즈니스 규칙을 변경하고 동일한 프레젠테이션을 재사용할 수 있습니다.

코드 재사용 클래스의 측면은 클래스를 더 작성해야 하는 또 다른 좋은 이유입니다.

더 나은 수업을 작성하는 데 도움이 되는 더 많은 아이디어가 있습니다.

다음은 추가 탐색에 도움이 되는 몇 가지입니다.

  • 응집 및 결합
  • 말하고 묻지 마세요
  • 데메테르의 법칙

처음에 클래스를 작성하는 이유를 아는 것이 시작하기에 좋은 출발점이므로 잘했습니다 전체 기사를 읽으셨다면!

요약

우리가 클래스를 작성하는 이유, 추상화가 무엇인지, 왜 중요한지 배웠습니다. 또한 좋은 수업을 작성하는 기본 사항을 배웠고 더 읽어야 할 몇 가지 지침을 제공했습니다.

코드가 큰 덩어리가 되는 것을 원하지 않는 한 수업 디자인을 개선하기 위해 지금 이러한 개념 중 일부를 적용하십시오 🙂

이 기사가 유용했다면 Twitter에서 공유하는 것을 잊지 마세요!