«interfaces» 태그된 질문

인터페이스 프로그래밍과 같은 인터페이스 관련 설계 고려 사항에 대한 질문


9
하나의 메소드 서명을 변경했으며 이제 25,000 개 이상의 오류가 있습니다. 지금 무엇?
나는 최근에 매우 큰 응용 프로그램 (15M 위치)에서 작업하는 새 직장을 시작했습니다. 이전 작업에서 우리는 비슷하게 큰 응용 프로그램을 사용했지만 OSGi를 사용했습니다. 이는 응용 프로그램이 독립적으로 변경, 컴파일 및 배포 될 수있는 많은 마이크로 서비스로 분류되었음을 의미합니다. 새 응용 프로그램은 몇 개의 .dll이있는 하나의 큰 코드 기반 일뿐입니다. 그래서이 클래스의 …

19
왜 인터페이스가 유용한가요?
나는 한동안 C #에서 공부하고 코딩 해왔습니다. 그러나 여전히 인터페이스의 유용성을 알 수는 없습니다. 그들은 테이블에 너무 적은 것을 가져옵니다. 기능의 서명을 제공하는 것 외에는 아무것도하지 않습니다. 구현해야 할 기능의 이름과 서명을 기억할 수 있으면 필요하지 않습니다. 그들은 (인터페이스에서) 상기 함수가 상속 클래스에서 구현되도록하기 위해 있습니다. C #은 훌륭한 언어이지만 …
158 interfaces 

5
상속보다 구성을 선호해야하는 이유는 무엇입니까?
나는 항상 구성이 상속보다 선호된다는 것을 읽었습니다. 예를 들어, 상속 과는 달리 컴포지션을 사용하는 것을 옹호하는 것과 같은 종류 의 블로그 게시물은 다형성이 어떻게 이루어지는 지 알 수 없습니다. 그러나 사람들이 구성을 선호한다고 말할 때 실제로 구성과 인터페이스 구현의 조합을 선호한다는 느낌이 들었습니다. 상속없이 어떻게 다형성을 얻을 수 있습니까? 상속을 …

5
추상 클래스가 이미 있는데 왜 기본 및 정적 메소드가 Java 8의 인터페이스에 추가 되었습니까?
Java 8에서 인터페이스에는 구현 된 메소드, 정적 메소드 및 소위 "기본"메소드 (구현 클래스를 대체 할 필요가 없음)가 포함될 수 있습니다. 내 (아마도 순진한) 견해로는 이와 같은 인터페이스를 위반 할 필요가 없었습니다. 인터페이스는 항상 이행해야 할 계약이었으며 매우 단순하고 순수한 개념입니다. 이제 여러 가지가 혼합되어 있습니다. 내 의견으로는 : 정적 메소드는 …

15
단위 테스트를 가능하게하기 위해 처음부터 코드를 설계해야합니까?
현재 팀에서 단위 테스트를 허용하도록 코드 디자인을 수정하는 것이 코드 냄새인지, 또는 코드 냄새가 나지 않고 어느 정도까지 할 수 있는지에 대한 논쟁이 있습니다. 우리는 단지 다른 모든 소프트웨어 개발 회사에 존재하는 관행을 제자리에두기 시작했기 때문에 발생했습니다. 특히, 우리는 매우 얇은 웹 API 서비스를 갖게 될 것입니다. 주요 책임은 웹 …


7
인터페이스 이름은 "I"접두사로 시작해야합니까?
로버트 마틴이 " 깨끗한 코드 "를 읽고 더 나은 프로그래머가되기를 바랍니다. 지금까지 그 어느 것도 실제로 획기적인 것은 아니지만 응용 프로그램을 디자인하고 코드를 작성하는 방법에 대해 다르게 생각하게 만들었습니다. 이 책에는 동의하지 않을뿐만 아니라 특히 인터페이스 명명 규칙과 관련하여 이해가되지 않는 부분이 있습니다. 다음은 책에서 직접 가져온 텍스트입니다. 혼란스럽고 명확하게 …

7
C #에서 확장 메서드가있는 인터페이스 대신 추상 클래스를 사용하는 경우
"Abstract class"와 "interface"는 비슷한 개념으로, 인터페이스가 두 가지 중 더 추상적 인 개념입니다. 차별화 요소 중 하나는 추상 클래스가 필요할 때 파생 클래스에 대한 메소드 구현을 제공한다는 것입니다. 그러나 C #에서는 최근에 확장 메서드가 도입되어이 차별화 요소가 줄어들어 인터페이스 메서드에 대한 구현을 제공 할 수 있습니다. 또 다른 차별화 요소는 …

10
Show () + Hide () 또는 SetVisible (bool visible)이 더 낫습니까?
무엇이 더 좋고 왜? (인터페이스 디자인 관점에서) : A) 두 가지가하려면 Show()및 Hide()기능을 b) 하나의 SetVisible(bool visible)기능 을 가지려면 편집 : 예를 들어 일부 객체에는 가시성 상태가 있으며이 기능은 객체를 변경하는 데 사용됩니다. C) 세하도록하려면 Show(), Hide(), SetVisible(bool visible)기능을
59 java  c++  interfaces 


9
향후 인터페이스 사용을위한 프로그래밍
내 옆에 다음과 같은 인터페이스를 디자인 한 동료가 있습니다. public interface IEventGetter { public List<FooType> getFooList(String fooName, Date start, Date end) throws Exception; .... } 문제는 현재 코드의 어느 곳에서나이 "종료"매개 변수를 사용하지 않고 있다는 것입니다. 차후에 시간이 지나야 할 수도 있기 때문입니다. 우리는 지금 매개 변수를 인터페이스에 넣는 것이 …

4
Rich Hickey는 "인터페이스 / 클래스 / 타입]의 모든 특성으로 인해 재사용이 중단됩니다!"
Rich Hickey의 생각을 자극하는 goto 컨퍼런스 기조 연설 에서 29 분에 " Value of Values "는 Java와 같은 언어의 오버 헤드에 대해 이야기하고 있으며 "모든 인터페이스가 재사용을 중단시킵니다." 그는 무엇을 의미합니까? 그게 사실입니까? 답변을 검색 할 때 다음과 같은 결과를 얻었습니다. 최소한의 지식 원리 일명 API 인터페이스를 장려하는 데 미터 …

11
인터페이스를 사용하지 않는 것이 나쁜 습관입니까? [닫은]
인터페이스를 거의 사용하지 않고 다른 코드에서 공통적으로 사용됩니다. 또한 내 코드에서 드물게 하위 클래스와 슈퍼 클래스를 만듭니다 (내 클래스를 만드는 동안). 나쁜 일입니까? 이 스타일을 바꾸시겠습니까? 이 스타일에 부작용이 있습니까? 큰 프로젝트를 수행하지 않았기 때문입니까?

11
추상 클래스 / 메소드가 더 이상 사용되지 않습니까?
나는 많은 추상 클래스 / 메소드를 만들었습니다. 그런 다음 인터페이스를 사용하기 시작했습니다. 인터페이스가 추상 클래스를 더 이상 사용하지 않는지 확실하지 않습니다. 완전히 추상적 인 수업이 필요하십니까? 대신 인터페이스를 작성하십시오. 구현이 추상 클래스가 필요하십니까? 인터페이스를 만들고 클래스를 만듭니다. 클래스를 상속하고 인터페이스를 구현하십시오. 또 다른 이점은 일부 클래스는 부모 클래스가 필요하지 않지만 …

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