«interfaces» 태그된 질문

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

8
비동기 함수를 노출하는 인터페이스가 누출 추상입니까?
나는 Dependency Injection Principles, Practices and Patterns 책을 읽고 있으며,이 책 에 잘 설명되어있는 누출 추상화 개념에 대해 읽었습니다. 요즘 나는 의존성 주입을 사용하여 C # 코드베이스를 리팩토링하여 비동기 호출이 차단 호출 대신 사용되도록합니다. 그렇게하면 코드베이스에서 추상화를 나타내는 일부 인터페이스를 고려하고 비동기 호출을 사용할 수 있도록 다시 디자인해야합니다. 예를 들어, …

5
이미 추상 클래스가 있다면 인터페이스를 정의하는 것이 합리적입니까?
기본 / 공유 기능이있는 클래스가 있습니다. 나는 그것을 위해 사용 abstract class한다 : public interface ITypeNameMapper { string Map(TypeDefinition typeDefinition); } public abstract class TypeNameMapper : ITypeNameMapper { public virtual string Map(TypeDefinition typeDefinition) { if (typeDefinition is ClassDefinition classDefinition) { return Map(classDefinition); } ... throw new ArgumentOutOfRangeException(nameof(typeDefinition)); } protected abstract …

3
인터페이스가 다른 인터페이스에서 상속 된 경우 '비어있는'것으로 간주됩니까?
빈 인터페이스는 일반적으로 내가 알 수있는 한, 특히 언어와 같은 속성이 지원되는 곳에서는 나쁜 습관으로 간주됩니다. 그러나 다른 인터페이스에서 상속 된 인터페이스는 '비어있는'것으로 간주됩니까? interface I1 { ... } interface I2 { ... } //unrelated to I1 interface I3 : I1, I2 { // empty body } 구현이 것을 아무것도 …

2
Java 컬렉션 프레임 워크 인터페이스에서 UnsupportedOperationException
Java Collections Framework를 살펴보면 인터페이스 중 일부에 주석이 있음을 알았습니다 (optional operation). 이러한 메소드를 사용 UnsupportedOperationException하면 해당 메소드를 구현하지 않으려 는 경우 클래스를 통해 구현할 수 있습니다. 이에 대한 예는의 addAll방법입니다 Set Interface. 이제이 일련의 질문에서 언급했듯이 인터페이스는 용도에 대한 정의 계약입니다. 인터페이스는 클래스의 기능과 클래스의 기능을 분리하기 때문에 중요합니다. …

4
분류에만 인터페이스를 사용하는 것은 나쁜 습관입니까?
예를 들면 다음과 같습니다. 내가 수업을 말한다 A, B, C. 나는 두 개의 인터페이스를 가지고, 그들에게 전화 할 수 있습니다 IAnimal와 IDog. IDog에서 상속 IAnimal합니다. A하고 B있는 IDog반면, S C아니지만, 그것은이다 IAnimal. 중요한 부분은 IDog추가 기능 을 제공하지 않는다는 것입니다. 단지 허용하는 데 사용됩니다 A하고 B있지만 C, 특정 방법에 인수로 …

5
메서드 매개 변수 대신 생성자에 데이터를 전달할 때 클래스 개념이 어떻게 변경됩니까?
파서를 만들고 있다고 가정 해 봅시다. 한 가지 구현은 다음과 같습니다. public sealed class Parser1 { public string Parse(string text) { ... } } 또는 대신 텍스트를 생성자에 전달할 수 있습니다. public sealed class Parser2 { public Parser2(string text) { this.text = text; } public string Parse() { ... } …

1
CharSequence가 contains (CharSequence)를 정의하지 않는 이유는 무엇입니까?
계약이 동일하므로 이는 Java SE 및 Android 모두에 적용됩니다. Java SE 용 CharSequence 설명서 Android 용 CharSequence 설명서 CharSequencecontains(CharSequence)메소드를 정의하지 않습니다 . 나는 그 이유를 찾을 수 없으며 그것을 포함하는 것이 매우 유용 CharSequence#toString()하여 일련의 문자를 확인하기 위해 전화 를 걸 필요가 없습니다 . 예를 들어, Android에서는 사용자가 구현 하더라도 …

5
돌연변이 방법에 대한 별도의 인터페이스
나는 코드를 리팩토링하는 일을하고 있었고, 토끼 구멍에서 첫 단계를 밟은 것 같다. Java로 예제를 작성하고 있지만 무시할 수 있다고 생각합니다. 인터페이스를 Foo다음과 같이 정의했습니다. public interface Foo { int getX(); int getY(); int getZ(); } 그리고 다음과 같은 구현 public final class DefaultFoo implements Foo { public DefaultFoo(int x, int …

9
어떤 OO 디자인을 사용해야합니까 (디자인 패턴이 있습니까)?
'Bar / Club'(음료 / 사회적 장소)을 나타내는 두 가지 개체가 있습니다. 한 시나리오에서 막대 이름, 주소, 거리, 슬로건이 필요합니다. 다른 시나리오에서는 바 이름, 주소, 웹 사이트 URL, 로고가 필요합니다 그래서 같은 것을 나타내지 만 다른 필드를 가진 두 개의 객체가 있습니다. 불변의 객체를 사용하고 싶습니다. 그래서 모든 필드는 constructor에서 설정됩니다 …

4
C ++에서 "인터페이스"라는 용어
자바는 사이에 명확한 구분을하게 class하고 interface. (C #도 마찬가지라고 생각하지만 경험이 없습니다.) 그러나 C ++을 작성할 때 클래스와 인터페이스 사이에 언어로 구별되는 것은 없습니다. 결과적으로 나는 항상 인터페이스가 자바에서 다중 상속이 없다는 해결 방법으로 보았습니다. C ++에서 이러한 구별을 만드는 것은 임의적이며 의미가 없습니다. 나는 항상 "가장 명백한 방법으로 쓰기"접근 …

3
실존 유형은 인터페이스와 어떻게 다릅니 까?
존재 유형이 주어짐 T = ∃X.{op₁:X, op₂:X→boolean} 그리고이 일반적인 Java 인터페이스 : interface T<X> { X op₁(); boolean op₂(X something); } 실존 유형과 Java 인터페이스의 근본적인 차이점은 무엇입니까? 분명히 구문상의 차이점과 Java의 객체 지향 (숨겨진 this매개 변수 등과 같은 세부 사항도 포함 )이 있습니다. 나는 너무 많은 개념과 의미 차이에서 …

3
C #에서 다양한 Collection 제네릭 인터페이스의 차이점
나는 Windows 용 C #과 ASP.net MVC 개발을 한동안 가지고 놀았습니다. 그러나 나는 여전히 몇몇 영역에서 불분명하다. 비슷한 종류의 Generic Collection Interfaces 를 사용하고 교환 할 때의 성능 문제와 기본적인 차이점을 이해하려고합니다 . 사이의 기본적인 차이는 무엇인가 IEnumerable<T>, ICollection<T>, List<T>(Class)? 내 응용 프로그램에서 아무런 문제도 보지 않고 사용하고 교환하는 것 …

5
수정 된 전략 디자인 패턴
나는 최근에 디자인 패턴을 조사하기 시작했고, 코딩하는 것 중 하나는 작은 차이를 제외하고 전략 패턴에 완벽하게 맞을 것입니다. 기본적으로 내 알고리즘 중 일부 (모두는 아님)에는 추가 매개 변수가 필요합니다. 그래서 나는 계산 메소드를 호출 할 때 추가 매개 변수를 전달하십시오. 또는 ConcreteAlgorithm 클래스 내에 변수로 변수를 저장하고 알고리즘을 호출하기 전에 …

6
멤버 숨기기 전용 목적으로 명시 적 인터페이스 구현을 사용해야하는 이유는 무엇입니까?
C #의 복잡성에 대한 연구 중 하나에서 명시 적 인터페이스 구현에 관한 흥미로운 구절을 발견했습니다. While this syntax is quite helpful when you need to resolve name clashes, you can use explicit interface implementation simply to hide more "advanced" members from the object level. 사용을 허용 object.method()하거나 캐스팅을 요구하는 것의 …
11 c#  design  interfaces 

4
내가 작성한 모든 클래스가 인터페이스를 준수해야합니까?
저는 Typescript로 게임을 작성하고 있으며 " 인터페이스 기반 프로그래밍 " 이라는 아이디어를 고수하기로 결정했습니다 . 여기서는 인터페이스 대신 구현, 객체의 인터페이스를 기반으로 코드를 작성합니다. 나는 많은 수의 인터페이스와 인터페이스를 구현 한 클래스를 작성하고 한 걸음 물러서서 클래스가 단순하여 구현을 변경할 필요가 없을 정도로 간단하다는 것을 깨달았습니다. 수업은 ( Phaser.Sprite탱크처럼 행동하기 …

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