Code Smell 135 - 단 한 번의 구현으로 인터페이스
6420 단어 javatutorialwebdevprogramming
TL;DR: Don't over-generalize
문제
솔루션
문맥
과거에 프로그래머들은 우리에게 변화를 위한 설계를 하라고 말했습니다.
요즘 우리는 과학적인 방법을 따릅니다.
중복을 발견할 때마다 제거합니다.
전에는 아닙니다.
샘플 코드
잘못된
public interface Vehicle {
public void start();
public void stop();
}
public class Car implements Vehicle {
public void start() {
System.out.println("Running...");
}
public void stop() {
System.out.println("Stopping...");
}
}
// No more vehicles??
오른쪽
public class Car {
public void start() {
System.out.println("Running...");
}
public void stop() {
System.out.println("Stopping...");
}
}
// Wait until more vehicles are discovered
발각
[X] 자동
컴파일 시간에 이 오류를 추적할 수 있기 때문에 린터에서는 매우 쉽습니다.
예외
이 규칙은 시스템 간 정의 및 비즈니스 로직에 적용됩니다.
일부 프레임워크는 이행할 프로토콜로 인터페이스를 정의합니다.
우리는 기존의 실제 프로토콜을 모델링해야 합니다.
인터페이스는 프로토콜에 대한 대응입니다.
종속성 주입 프로토콜은 구현으로 충족되는 인터페이스를 선언합니다. 그때까지는 비어 있을 수 있습니다.
귀하의 언어가 모의 테스트를 위한 인터페이스를 정의하는 경우 다른 것입니다code smell.
태그
잘못된
public interface Vehicle {
public void start();
public void stop();
}
public class Car implements Vehicle {
public void start() {
System.out.println("Running...");
}
public void stop() {
System.out.println("Stopping...");
}
}
// No more vehicles??
오른쪽
public class Car {
public void start() {
System.out.println("Running...");
}
public void stop() {
System.out.println("Stopping...");
}
}
// Wait until more vehicles are discovered
발각
[X] 자동
컴파일 시간에 이 오류를 추적할 수 있기 때문에 린터에서는 매우 쉽습니다.
예외
이 규칙은 시스템 간 정의 및 비즈니스 로직에 적용됩니다.
일부 프레임워크는 이행할 프로토콜로 인터페이스를 정의합니다.
우리는 기존의 실제 프로토콜을 모델링해야 합니다.
인터페이스는 프로토콜에 대한 대응입니다.
종속성 주입 프로토콜은 구현으로 충족되는 인터페이스를 선언합니다. 그때까지는 비어 있을 수 있습니다.
귀하의 언어가 모의 테스트를 위한 인터페이스를 정의하는 경우 다른 것입니다code smell.
태그
이 규칙은 시스템 간 정의 및 비즈니스 로직에 적용됩니다.
일부 프레임워크는 이행할 프로토콜로 인터페이스를 정의합니다.
우리는 기존의 실제 프로토콜을 모델링해야 합니다.
인터페이스는 프로토콜에 대한 대응입니다.
종속성 주입 프로토콜은 구현으로 충족되는 인터페이스를 선언합니다. 그때까지는 비어 있을 수 있습니다.
귀하의 언어가 모의 테스트를 위한 인터페이스를 정의하는 경우 다른 것입니다code smell.
태그
더 많은 정보
코드 냄새 130 - AddressImpl
Maxi Contieri ・ 4월 18일 ・ 2분 읽기
#codenewbie
#tutorial
#webdev
#java
결론
우리는 추상화를 기다려야 하며 창의적이거나 사변적이지 않아야 합니다.
학점
Unsplash의 Brian Kostiuk 님의 사진
I love software, because if you can imagine something, you can build it.
레이 오지
소프트웨어 엔지니어링 좋은 인용구
Maxi Contieri ・ 12월 28일 '20 ・ 13분 읽기
#codenewbie
#programming
#quotes
#software
이 기사는 CodeSmell 시리즈의 일부입니다.
코드에서 냄새 나는 부분을 찾는 방법
Maxi Contieri ・ 2021년 5월 21일 ・ 4분 읽기
#codenewbie
#tutorial
#codequality
#beginners
Reference
이 문제에 관하여(Code Smell 135 - 단 한 번의 구현으로 인터페이스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/mcsee/code-smell-135-interfaces-with-just-one-realization-4nen
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
코드 냄새 130 - AddressImpl
Maxi Contieri ・ 4월 18일 ・ 2분 읽기
#codenewbie
#tutorial
#webdev
#java
우리는 추상화를 기다려야 하며 창의적이거나 사변적이지 않아야 합니다.
학점
Unsplash의 Brian Kostiuk 님의 사진
I love software, because if you can imagine something, you can build it.
레이 오지
소프트웨어 엔지니어링 좋은 인용구
Maxi Contieri ・ 12월 28일 '20 ・ 13분 읽기
#codenewbie
#programming
#quotes
#software
이 기사는 CodeSmell 시리즈의 일부입니다.
코드에서 냄새 나는 부분을 찾는 방법
Maxi Contieri ・ 2021년 5월 21일 ・ 4분 읽기
#codenewbie
#tutorial
#codequality
#beginners
Reference
이 문제에 관하여(Code Smell 135 - 단 한 번의 구현으로 인터페이스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/mcsee/code-smell-135-interfaces-with-just-one-realization-4nen
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
I love software, because if you can imagine something, you can build it.
소프트웨어 엔지니어링 좋은 인용구
Maxi Contieri ・ 12월 28일 '20 ・ 13분 읽기
#codenewbie
#programming
#quotes
#software
코드에서 냄새 나는 부분을 찾는 방법
Maxi Contieri ・ 2021년 5월 21일 ・ 4분 읽기
#codenewbie
#tutorial
#codequality
#beginners
Reference
이 문제에 관하여(Code Smell 135 - 단 한 번의 구현으로 인터페이스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mcsee/code-smell-135-interfaces-with-just-one-realization-4nen텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)