«object-oriented» 태그된 질문

시스템을 모듈 방식으로 제어 및 조작 할 수있는 일련의 객체로 모델링 할 수있는 방법론

3
인수가 많은 생성자를 피하십시오
그래서 다른 클래스의 객체를 만드는 팩토리가 있습니다. 가능한 클래스는 모두 추상 조상에서 파생됩니다. 팩토리에는 구성 파일 (JSON 구문)이 있으며 사용자 구성에 따라 작성할 클래스를 결정합니다. 이를 위해 팩토리는 JSON 구문 분석에 boost :: property_tree를 사용합니다. 그는 ptree를 통해 어떤 콘크리트 객체를 만들지 결정합니다. 그러나 product-objects에는 많은 필드 (속성)가 있습니다. 구체적인 …

2
Java 입력을 얻기 위해 스캐너 클래스의 인스턴스가 필요한 이유는 무엇입니까?
Java는 객체 지향적이지만 입력을 얻기 위해 스캐너 클래스에서 객체를 만들어야하는 이유는 무엇입니까? 할 수 없습니다 next()방법은, 예를 들어, 단지 정적? C 나에게 당신은 그냥 사용으로 아주 간단하게 보이는 scanf(), gets()또는 fgets(). Java 개발자가 Scanner 클래스를 작성해야 할 이유가 있다고 확신하지만 정상적인 기능을 수행하는 것보다 더 나은 방법은 무엇입니까? 같은 질문을하는 …

3
상속 : 수퍼 클래스의 코드가 사실상 * 복사 *되어 서브 클래스로 전달됩니까, 아니면 * 서브 클래스 *로 참조됩니까?
Class Sub는 class의 하위 클래스 Sup입니다. 그것은 실제로 무엇을 의미합니까? 다른 말로하면, "상속"의 실제 의미는 무엇입니까? 옵션 1 : Sup의 코드가 사실상 Sub로 복사 됩니다. (마찬가지로 '는 복사 - 붙여 넣기 "되지만 복사 코드없이 시각적 서브 클래스에서 본). 예 : methodA()Sup. Sub methodA()는 Sup를 확장하므로 (가상) Sub에 복사하여 붙여 넣습니다. …

4
느슨하게 결합 된 디자인을 만드는 데 얼마나 많은 노력을 기울여야합니까?
현재 디자인 패턴에 대해 배우고 있습니다. 대부분의 사람들은 이러한 패턴이 훌륭한 도구이지만 모든 것에 대한 대답이 아니라 적당히 사용해야한다는 데 동의 할 것입니다. 그것들을 너무 많이 사용하면 응용 프로그램을 거의 복잡하게 만들지 않을 것입니다. 패턴은 최상의 솔루션을 만들거나 좋은 솔루션을 만드는 데 도움이 될 수있는 곳에서만 사용해야합니다 (동의합니까?). 이것을 염두에두고 …

12
"메소드가 변경없이 재사용되는 경우 메소드를 기본 클래스에 넣거나 인터페이스를 작성하십시오"라는 것이 좋은 규칙입니까?
내 동료가 기본 클래스 또는 인터페이스를 만드는 중 하나를 선택하기위한 규칙을 제시했습니다. 그는 말한다 : 구현하려는 모든 새로운 방법을 상상해보십시오. 그들 각각의 경우,이 고려 : 이 방법은 하나 개 이상의 클래스에 의해 구현 될 것입니다 정확히 없이,이 양식에 어떤 변화? 대답이 "예"이면 기본 클래스를 작성하십시오. 다른 모든 상황에서는 인터페이스를 만듭니다. …

3
Ruby 및 C ++의 OOP 용어
학교에서 C ++ 수업을 듣고 있습니다. Ruby로 프로그래밍 한 이후로 OOP에 대해 잘 알고 있습니다. 그러나 C ++에는 멤버 함수, 멤버 변수 및 정적 함수가 있습니다. Ruby에는 인스턴스 메소드, 인스턴스 변수 및 클래스 변수가 있습니다. 그리고 더있다 ... 그들이 다른 이유가 있습니까? 그들은 상당히 다른 수준의 OOP입니까? 아니면이 생태계가 가진 …


4
추상 클래스의 일반 이름을 피하는 방법은 무엇입니까?
일반적으로 파일 핸들이나 (예) 유닉스 프로세스를 다루지 않는 한 "핸들"또는 "프로세스"와 같은 단어를 루틴 이름 및 클래스 이름의 일부로 사용하지 않는 것이 좋습니다. 그러나 추상 클래스는 종종 처리 이외의 작업으로 무엇을 할 것인지 실제로 모릅니다. 현재 상황에서는 사용자의받은 편지함에 로그인하여 메시지를 처리하는 "EmailProcessor"가 있습니다. 다음과 같은 스타일 문제가 발생했음을 알았지 …

9
세계가 이해가된다면?
많은 객체에 필요한 가치가 있습니다. 예를 들어, 투자 대상이 다른 금융 응용 프로그램이며 대부분 현재 금리가 필요합니다. 나는 "재정 환경"을 이자율로 자산으로 캡슐화하기를 바랐다. 그러나 그 가치가 필요한 형제 자매는 그것을 얻을 수 없습니다. 디자인을 오버 커플 링하지 않고 여러 객체간에 가치를 공유하는 방법은 무엇입니까? 분명히 나는 ​​이것에 대해 생각하고 …

4
응답 처리를위한 디자인 패턴
대부분의 경우 특정 함수 호출에 대한 응답을 처리하는 코드를 작성할 때 다음 코드 구조를 얻습니다. 예 : 로그인 시스템의 인증을 처리하는 기능입니다 class Authentication{ function login(){ //This function is called from my Controller $result=$this->authenticate($username,$password); if($result=='wrong password'){ //increase the login trials counter //send mail to admin //store visitor ip }else if($result=='wrong …

2
PHP에서 클래스 멤버를 초기화하는 가장 좋은 방법
내 생성자에 이와 같은 코드가 많이 있습니다. function __construct($params) { $this->property = isset($params['property']) ? $params['property'] : default_val; } 속성 정의에서 기본값을 지정하는 것보다이 작업을 수행하는 것이 더 낫습니까? 즉 public $property = default_val? 때로는 기본값에 대한 논리가 있으며 일부 기본값은 다른 속성에서 가져 왔으므로 생성자 에서이 작업을 수행 한 이유입니다. …

3
메소드 오버로드는 언제 적절한가요?
기존의 합리적으로 큰 시스템을 작업 중이라고 가정합니다. myObject클래스 의 객체가 있습니다 MyClass(예를 들어 Java로 작업한다고 가정). myObject는 a Collection, List및 (필자가 생각하는) 관련이없는 다른 객체를 포함하는 구성 입니다. 여기에는 노출되지 않았 List는지 확인하기 위해 구성 된 메소드를 호출하는 데 사용되는 대리자 메소드가 포함되어 있습니다 List(내 용어가 잘못되어서 죄송합니다). 이제이 있다고 …

9
객체를 생성자에 전달하거나 클래스에서 인스턴스화해야합니까?
다음 두 가지 예를 고려하십시오. 생성자에게 객체 전달 class ExampleA { private $config; public function __construct($config) { $this->config = $config; } } $config = new Config; $exampleA = new ExampleA($config); 클래스 인스턴스화 class ExampleB { private $config; public function __construct() { $this->config = new Config; } } $exampleA = new …

2
단일 함수를 재사용하기 위해 클래스를 확장하는 것이 합리적인 관행입니까?
워드 프레스 사이트를 위해 다양한 포스트 필터를 개발 중이며 단일 클래스로 처음 4 개를 구축했습니다. 마지막 두 가지는 클래스에서 단일 함수 (최종 링크를 생성하는 함수) 만 공유 할 수있을 정도로 범위가 다릅니다. 이 경우 또는 유사한 가상의 여러 인스턴스에서 해당 기능을 갖기 위해 원래 클래스를 확장하는 것이 합리적입니까, 아니면 더 …

3
중복 코드를 제거하는 방법 (일반)?
OO 언어 (예 : Java로 제한되지 않음)에서 발생 범위에 따라 중복 코드를 어떻게 수정합니까? 나는 예를 들어 시작할 것이다. 동일한 클래스 (범위)에서 추출 방법 리팩토링 (수정)을 수행하십시오. 동일한 계층 구조 (범위)의 클래스에서 추출 방법 및 풀업 (수정)을 수행합니다. ...

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.