2017-01-30 3 views
0

저는 이산 수학의 세계에서 일하고 있고 어떤 함수를 가지고 있다고 가정합니다.메소드를 소유하고있는 객체는 무엇입니까? 이산 수학에서의 번역

f: A x B x C -> D.

이 함수를 사용하면 f(a,b,c) = d과 같은 계산을 할 수 있습니다. (나는 여기서 모호하다.)

이제 일부 최신 OO 프로그래밍 언어에서이 계산을 명시 적으로 구현하려고한다고 가정합니다. 그래서 나는 ClassA 클래스의 a이라는 변수를 초기화하고 bc과 같은 변수를 초기화한다. 그리고 뭐? 어떤 객체가 자신의을 소유해야합니까? 또는 이니셜 라이저 일 수 있습니다. 그것은 정적 함수 일 수 있습니까?

내가 할 수 :

  • d = ZStatic.f_4(a,b,c)
  • 모두 같은 그럴듯한

    • d = a.f_1(b,c),
    • d = b.f_2(a,c),
    • d = c.f_3(a,b),
    • d = new ObjD(a,b,c)을, 옵션, 안 그런가?

      대칭성 요구 사항에 따라 이러한 모든 옵션을 구현해야합니까?

      나는 생성자 접근법을 완전히 피하는 것을 선호하지만, 그 이상의 사실은 본질적으로 임의의 정보의 가정이 아닌 다른 진전이 이루어질 수 있는지를 모른다.

      그럼 $ f $ 함수를 소유해야하는 객체는 무엇입니까?

    답변

    2

    최상의 대답을 제공하려면 사용하는 변수의 종류를 알아야합니다.

    oop에서 매우 중요한 측정 기준은 높은 응집도입니다. 응집력은 모듈의 요소들이 함께 속하는 정도입니다. 변수 a, b 및 c가 특정 컨텍스트에서 함께있는 경우 정확히 하나의 클래스에 넣는 것이 가장 좋은 솔루션이어야합니다. 그리고 그들이 한 클래스에 있다면 걱정할 필요가 없습니다. 어떤 클래스가 계산을 소유해야합니까 (네 번째 솔루션).

    정적 기능을 사용하기위한 마지막 제안을 생각해 볼 수도 있습니다. 이 접근법은 수학 라이브러리에서 다양한 언어 (예 : Java : Math class)로 사용됩니다.