«interfaces» 태그된 질문

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

3
느슨하게 결합 된 코드에 인터페이스 사용
배경 특정 유형의 하드웨어 장치의 사용에 의존하는 프로젝트가 있지만 필요한 작업을 수행하는 한 누가 하드웨어 장치를 만드는지는 중요하지 않습니다. 그렇게 말하면, 같은 일을하도록되어있는 두 장치조차도 같은 제조업체가 만들지 않으면 차이가있을 것입니다. 따라서 인터페이스를 사용하여 응용 프로그램을 관련된 특정 제조업체 / 모델 과 분리 하고 대신 인터페이스가 최상위 기능을 다루도록 하려고 …

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

5
인터페이스와 상속 : 두 세계의 최고?
나는 인터페이스를 '발견'했고 그것들을 사랑하기 시작했다. 인터페이스의 장점은 계약이라는 것입니다. 계약을 이행하는 모든 개체는 해당 인터페이스가 필요한 모든 곳에서 사용할 수 있습니다. 인터페이스의 문제점은 기본 구현을 할 수 없다는 것입니다. 이는 평범한 속성에 대한 고통이며 DRY를 물리칩니다. 이것은 구현과 시스템이 분리 된 상태를 유지하기 때문에 좋습니다. 한편 상속은 더 긴밀한 …

2
많은 버튼에 대해 OnClickListener 인터페이스를 구현하는 올바른 방법은 무엇입니까
내 Android 활동에는 OnClickListener가 필요한 여러 개의 버튼이 있습니다. 나는 다음과 같은 여러 가지 방법을 보았습니다. 활동 클래스에서 인터페이스 구현 인터페이스를 구현하는 별도의 클래스 만들기 각 버튼에 대한 익명의 내부 클래스를 정의합니다. 각 접근법의 많은 예를 보았습니다. 그러나 왜 한 방법이 다른 방법 대신 사용되는지 명확하지 않습니다. 이 접근법들 사이의 …

1
Groovy의 특성, 상속 및 인터페이스는 언제 사용합니까?
나는 그루비를 배우고 난 그냥의 추가 2.3에 추가 된 새로운 기능에 대해 배운 특색 . 나에게 그것은 Traits가 기본적으로 수퍼 클래스와 인터페이스가 할 수있는 모든 것을 할 수있는 것처럼 보입니다. Groovy에 Traits를 추가하면 상속 및 인터페이스가 더 이상 사용되지 않습니까? 그렇지 않다면 이러한 각 메커니즘을 사용하기에 가장 좋은 시간은 언제입니까?

1
객체가 인터페이스의 일부만 사용할 때 인터페이스를 어떻게 구성합니까?
동일한 테이블을 업데이트하는 데이터베이스 액세스 객체가 필요한 두 개의 클래스가있는 프로젝트가 있습니다. 프레임 워크와 프로젝트의 제약으로 인해이 두 클래스를 결합 할 수 없습니다. 아래에서 설정 방법을 보여주는 사례를 만들었습니다. 클래스 A는 레코드를 업데이트하고 읽을 수 있어야하고 클래스 B는 레코드를 업데이트하고 삭제할 수 있어야합니다. 클래스를 그대로 사용하면 제대로 작동하지만 각 클래스에는 …

3
인터페이스가 구체적인 클래스에 의존해도 괜찮습니까?
사용자 정의 오류 처리기를 위해 Java로 인터페이스를 만들고 있습니다. 인수 오류 객체를 전달하고 싶지만 Exception클래스의 자식이어야 합니다. 인터페이스에서 정의 된 클래스 이름을 사용해도 괜찮습니까? 구현에 의존하지 않는다는 점에서 인터페이스가 적지 않습니까? 나는 이런 식으로하려고합니다. public class CustomException { /* ... Implementation ... */ } public interface Interface { void onError(CustomException …

2
데이터 지향 인터페이스 프로그래밍
코드베이스의 일부는 다음과 같은 스타일로 작성되었습니다. // IScheduledTask.cs public interface IScheduledTask { string TaskName { get; set; } int TaskPriority { get; set; } List<IScheduledTask> Subtasks { get; set; } // ... several more properties in this vein } // ScheduledTaskImpl.cs public class ScheduledTaskImpl : IScheduledTask { public string TaskName …

2
인터페이스 분리 원리 : 인터페이스가 상당히 겹치는 경우 어떻게해야합니까?
에서 피어슨 새로운 국제 버전 : 애자일 소프트웨어 개발, 원칙, 패턴, 및 사례 : 때로는 다른 클라이언트 그룹이 호출 한 메소드가 겹칠 수 있습니다. 오버랩이 작 으면 그룹의 인터페이스가 분리되어 있어야합니다. 공통 기능은 모든 겹치는 인터페이스에 선언해야합니다. 서버 클래스는 각 인터페이스에서 공통 기능을 상속하지만 한 번만 구현합니다. Bob 아저씨, 약간의 …

5
Java에서 "인터페이스에 프로그래밍"하는 것이 항상 의미가 있습니까?
인터페이스에서 구현하는 클래스를 인스턴스화하는 방법에 대한 이 질문에 대한 토론을 보았습니다 . 제 경우에는의 인스턴스를 사용하는 매우 작은 프로그램을 Java로 작성하고 있으며 TreeMap모든 사람들의 의견에 따라 다음과 같이 인스턴스화해야합니다. Map<X> map = new TreeMap<X>(); 내 프로그램 map.pollFirstEntry()에서 Map인터페이스 (및 인터페이스 에있는 다른 두 사람) 에서 선언되지 않은 함수를 호출하고 있습니다 …

3
데이터 유형에 인터페이스를 사용하는 것이 안티 패턴입니까?
사용자, 제품, 송장 및 주문과 같이 모델에 EF를 사용하는 다양한 엔터티가 있다고 가정합니다. 엔티티가 사전 결정된 세트에 속하는 응용 프로그램에서 엔티티 객체의 요약을 인쇄 할 수있는 사용자 정의 컨트롤을 작성 중입니다.이 경우 사용자 및 제품 요약을 요약 할 수 있다고 말합니다. 요약에는 모두 ID와 설명 만 포함되므로 이에 대한 간단한 …

6
큰 인터페이스 분할
데이터베이스에 액세스하기 위해 약 50 가지 방법으로 큰 인터페이스를 사용하고 있습니다. 인터페이스는 내 동료에 의해 작성되었습니다. 우리는 이것을 토론했다 : 나 : 50 가지 방법이 너무 많다. 코드 냄새입니다. 동료 : 어떻게해야합니까? DB 액세스를 원합니다. 나 : 네,하지만 미래에는 불분명하고 유지 보수가 거의 불가능합니다. 동료 : 네, 맞습니다. 좋지 않습니다. …

6
추상 메소드 만있는 인터페이스와 추상 클래스간에 차이점이 있습니까?
추상 클래스가 있고이 클래스에 추상 메소드 만 있다고 가정 해 봅시다. 이 추상 클래스는 메소드가 동일한 인터페이스와 다른가? 내가 알고 싶은 것은 추상적 멤버와 동등한 인터페이스를 가진 추상 클래스 간의 철학적, 객관적 및 기본 프로그래밍 언어 구현에 차이점이 있는지 여부입니다.

3
메소드 매개 변수 유형, 리턴 유형 및 특성 유형의 구체성에 대한 규칙
얼마 전에 메소드 매개 변수 유형, 리턴 유형 및 특성 유형의 구체성에 대한 일종의 경험 법칙을 읽었지만 기억하지는 않습니다. 반환 유형을 최대한 구체적으로 유지하고 매개 변수 유형을 최대한 추상적으로 유지하거나 그 반대로 유지하는 것에 대해 설명했습니다. 그것이 실제로 좋은 조언인지 나쁜 조언인지 모르겠습니다. 그러면 자신의 생각이 있다면 의견을 말하십시오. 건배.

2
"필요한 것만 요청"인터페이스 원리가 있습니까?
나는 기본적으로 "필요한 것만 요구하라"는 인터페이스를 디자인하고 소비하는 원칙을 사용하여 자랐습니다. 예를 들어 삭제할 수있는 유형이 많으면 Deletable인터페이스를 만들 것입니다 . interface Deletable { void delete(); } 그런 다음 일반 클래스를 작성할 수 있습니다. class Deleter<T extends Deletable> { void delete(T t) { t.delete(); } } 코드의 다른 곳에서는 항상 …

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