«interfaces» 태그된 질문

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

5
C에서 인터페이스 분리 원리를 적용하는 방법?
'C', 'C2', 'C3'과 같은 클라이언트가있는 'M'이라는 모듈이 있습니다. 모듈 M의 네임 스페이스, 즉 API 및 노출 된 데이터 선언을 헤더 파일에 할당하여 다음과 같은 방식으로 헤더 파일에 할당하고 싶습니다. 모든 클라이언트의 경우 필요한 데이터 및 API 만 표시됩니다. 모듈의 나머지 네임 스페이스는 클라이언트에서 숨겨집니다. 즉, 인터페이스 분리 원칙을 준수하십시오 . …
15 c  interfaces  solid 

5
IoC 용 인터페이스 대신 Func 사용
컨텍스트 : C #을 사용하고 있습니다. 나는 수업을 설계했고, 수업을 분리하고, 단위 테스트를 더 쉽게하기 위해 모든 의존성을 전달하고 있습니다. 내부적으로 객체 인스턴스화가 없습니다. 그러나 필요한 데이터를 얻기 위해 인터페이스를 참조하는 대신 범용 Func를 참조하여 필요한 데이터 / 동작을 반환합니다. 의존성을 주입 할 때 람다 식으로 할 수 있습니다. 나에게 …

2
Java 인터페이스의 모든 메소드 선언이 공개적인 것은 아닙니다. 메소드를 이러한 수정 자로 선언해야합니까?
Java 8부터 default메소드가 인터페이스에 도입되었습니다. 효과적으로,이 방법은있는 모든 방법은 interface있습니다 abstract. Java 9 (아마도)부터 private메소드가 허용됩니다. 이 의미에서 모든 방법은 interface있습니다 public abstract. "자바 인터페이스의 메소드가 public액세스 수정자를 사용하거나 사용하지 않고 선언해야합니까 ?" 스택 오버플로에서 https : //.com/questions/161633/should-methods-in-a-java-interface-be-declared-with-or-with-out-a-public-access-m 거기에, 대부분의 답변은 public abstract에있는 방법이 interface이외의 것이 될 수 없으므로 사용해서는 …

1
두 가지 Java 8 기본 메소드를 서로 구현하는 것이 좋습니다.
다음과 비슷한 두 가지 관련 방법으로 인터페이스를 설계하고 있습니다. public interface ThingComputer { default Thing computeFirstThing() { return computeAllThings().get(0); } default List<Thing> computeAllThings() { return ImmutableList.of(computeFirstThing()); } } 구현의 약 절반은 한 가지만 계산하는 반면 나머지 절반은 더 많은 것을 계산할 수 있습니다. 이것은 널리 사용되는 Java 8 코드에서 전례가 …

4
명시 적 인터페이스 구현을 사용하여 C #에서 멤버를 숨길 수 있습니까?
C #에서 인터페이스 및 명시 적 인터페이스 구현을 사용하는 방법을 알고 있지만 자주 사용하지 않는 특정 멤버를 숨기는 것이 나쁜 형식으로 간주되는지 궁금합니다. 예를 들면 다음과 같습니다. public interface IMyInterface { int SomeValue { get; set; } int AnotherValue { get; set; } bool SomeFlag { get; set; } event …

5
구현하기 전에 인터페이스 API를 작성해야합니까?
최근에보다 "조직화 된"프로그래밍에 대해 연구하고 있으며 구현이 아닌 인터페이스로 프로그래밍해야한다는 것을 배웠습니다. 이를 염두에두고, 가능한 경우 구현을 작성하기 전에 인터페이스에서 프로젝트를 "스케치"하는 것이 더 좋을까요? 이 경우 타사 라이브러리 (예 : Lidgren)를 사용하는 경우 인터페이스로 랩핑하고 IOC 컨테이너를 통해 해결해야합니까? 아니면 인터페이스에 노출해도됩니까?

3
인터페이스를 직접 구현해야합니까 아니면 슈퍼 클래스에서 수행해야합니까?
차이점이 있습니까? public class A extends AbstractB implements C {...} 대... public class A extends AbstractB {...} abstract class AbstractB implements C {...} 두 경우 모두 클래스 A가 인터페이스를 준수한다는 것을 이해합니다. 두 번째 경우에는의 AbstractB인터페이스 메소드에 대한 구현을 제공 할 수 있습니다 C. 그게 유일한 차이점인가요? 나는의 인터페이스 방법 …

6
인터페이스의 일부만 구현하는 방법
OOP에서 개발할 때 때때로 인터페이스 / 계약은 변경할 수없는 라이브러리에 의해 제공됩니다. 이 인터페이스를 J라고합시다. 이제이 인터페이스를 구현하는 객체를 사용하는 클래스 A의 객체가 있습니다. 내부 인터페이스 정의의 작은 부분 만 필요합니다. 일부 객체 클래스는 프로젝트 중에 나에 의해 생성되므로 (D 유형 중 하나라고 부릅니다) 인터페이스 J 내부의 모든 구현에 오버 …

1
자바 기본 메소드 사용법
수십 년 동안이 인터페이스가 있다고 경우있었습니다 만 유일한 방법 서명을 지정 (만). 우리는 이것이 "일을하는 올바른 방법"이라고 들었습니다. 그런 다음 Java 8이 나와서 말했습니다. 음, 이제 기본 방법을 정의 할 수 있습니다. 잘 지내요. 숙련 된 Java 개발자와 최근에 개발 한 (최근 몇 년간) 개발자들에 의해 이것이 어떻게 소화되고 있는지 …

3
인터페이스와 관련된 시뮬레이션에 대한 잘못된 OOP 설계입니까?
나는 뱀파이어, 늑대, 인간 및 트럭을 시뮬레이션하기 위해 내 자신의 작은 OOP 프로그램을 설계하고 있으며 인터페이스에 대한 내 자신의 제한된 이해를 구현하려고합니다. ( 여전히 추상화하고 있으며 아직 코드 구현이 없으므로 OOP 디자인의 문제입니다 ... 생각합니다!) 이 클래스들 사이 에서 '공통 행동' 을 찾고 인터페이스 로 구현하는 것이 맞 습니까? 예를 …

4
동일한 서명을 가진 두 개의 인터페이스
카드에 두 가지 중요한 기능 세트가있는 카드 게임을 모델링하려고합니다. 첫 번째는 효과입니다. 카드를 플레이 할 때 발생하는 게임 상태의 변경 사항입니다. 효과의 인터페이스는 다음과 같습니다. boolean isPlayable(Player p, GameState gs); void play(Player p, GameState gs); 그리고 비용을 충족 할 수 있고 모든 효과를 재생할 수있는 경우에만 카드를 재생할 수있는 것으로 …
13 interfaces 

4
인터페이스가 다른 인터페이스를 확장하고 메소드를 상속해야 함
이것은 일반적인 질문이지만 현재 겪고있는 문제와 관련이 있습니다. 현재 솔루션에 지정된 인터페이스가 있습니다. public interface IContextProvider { IDataContext { get; set; } IAreaContext { get; set; } } 이 인터페이스는 프로그램 전체에서 자주 사용되므로 필요한 개체에 쉽게 액세스 할 수 있습니다. 그러나 프로그램의 상당히 낮은 수준에서 IAreaContext 를 사용 하고 …
13 c#  design  interfaces 

4
C ++ 및 Java의 추상 클래스 / 인터페이스에 대한 다른 사용 근거가 있습니까?
Herb Sutter에 따르면 구현을 가능한 한 분리하기 위해 C ++의 클래스를 추상화하는 추상 인터페이스 (모든 순수 가상 함수)를 선호해야합니다. 개인적으로이 규칙이 매우 유용하다고 생각하지만 최근에는 많은 Java 프로그래머와 함께 팀에 합류했으며 Java 코드에는이 지침이 존재하지 않는 것 같습니다. 함수와 그 구현은 종종 추상 클래스에 있습니다. 그래서 C ++에서도 Herb Sutter가 …

4
인터페이스 및 메소드 서명은 저작권으로 보호됩니까?
예를 들어, Microsoft의 .Net System.Random 클래스와 정확히 동일한 목적 및 메소드 서명을 가진 Random이라는 클래스를 작성하면 저작권이 침해됩니까? 작성된 언어가 달라 집니까? 이 경우 내장 시드 PRNG 클래스가없는 ActionScript에서 사용할 Random 클래스를 작성하려고합니다. 누구든지 소프트웨어의 어떤 측면이 보호되는지 이해하기위한 좋은 링크 나 참조 제안이있는 경우에도 좋습니다. 그리고 네, 이것이 "진정한"법률 …

3
상속보다는 구성
소프트웨어 엔지니어링을 가르치고 혼란스러워하는 상충되는 정보에 대비하려고합니다. 나는 OOP를 배우고 추상 클래스 / 인터페이스가 무엇인지, 그것들을 사용하는 방법을 배우고 있지만, 상속보다 구성을 선호해야한다는 것을 읽고 있습니다. 나는 한 클래스가 다른 클래스의 객체를 작성 / 생성하여 새로운 객체의 기능을 활용 / 상호 작용할 때 구성을 이해합니다. 그래서 내 질문은 ... 추상 …

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