코드 냄새 144 - 대체 가능한 개체
TL;DR: Respect the . Make fungible what is Fungible in real-world and vice-versa.
문제
솔루션
문맥
Wikipedia에 따르면
Fungibility is the property of a good or a commodity whose individual units are essentially interchangeable and each of whose parts is indistinguishable from another part.
소프트웨어에서는 대체 가능한 객체를 다른 객체로 대체할 수 있습니다.
객체가 실제 객체와 함께 있을 때 때때로 부분 모델을 잊어버리고 디자인을 덮어씁니다.
샘플 코드
잘못된
public class Person implements Serializable {
private final String firstName;
private final String lastName;
public Person(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
}
shoppingQueueSystem.queue(new Person('John', 'Doe'));
오른쪽
public class Person {
}
shoppingQueueSystem.queue(new Person());
// The identity is irrelevant for queue simulation
발각
[X] 수동
이것은 시맨틱 냄새입니다.
모델이 맞는지 아닌지를 확인하려면 모델을 이해해야 합니다.
태그
Fungibility is the property of a good or a commodity whose individual units are essentially interchangeable and each of whose parts is indistinguishable from another part.
잘못된
public class Person implements Serializable {
private final String firstName;
private final String lastName;
public Person(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
}
shoppingQueueSystem.queue(new Person('John', 'Doe'));
오른쪽
public class Person {
}
shoppingQueueSystem.queue(new Person());
// The identity is irrelevant for queue simulation
발각
[X] 수동
이것은 시맨틱 냄새입니다.
모델이 맞는지 아닌지를 확인하려면 모델을 이해해야 합니다.
태그
결론
대체 가능한 것을 대체 가능하게 만들고 그 반대도 마찬가지입니다.
쉬워 보이지만 디자인 기술이 필요하고 우발적인 복잡성을 피해야 합니다.
학점
사진 제공: Andrey Metelev on Unsplash
People think that computer science is the art of geniuses but the actual reality is the opposite, just many people doing things that build on each other, like a wall of mini stones.
도널드 크누스
소프트웨어 엔지니어링 좋은 인용구
Maxi Contieri ・ 12월 28일 '20 ・ 13분 읽기
#codenewbie
#programming
#quotes
#software
이 기사는 CodeSmell 시리즈의 일부입니다.
코드에서 냄새 나는 부분을 찾는 방법
Maxi Contieri ・ 2021년 5월 21일 ・ 7분 읽기
#codenewbie
#tutorial
#codequality
#beginners
Reference
이 문제에 관하여(코드 냄새 144 - 대체 가능한 개체), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/mcsee/code-smell-144-fungible-objects-3h87
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
사진 제공: Andrey Metelev on Unsplash
People think that computer science is the art of geniuses but the actual reality is the opposite, just many people doing things that build on each other, like a wall of mini stones.
도널드 크누스
소프트웨어 엔지니어링 좋은 인용구
Maxi Contieri ・ 12월 28일 '20 ・ 13분 읽기
이 기사는 CodeSmell 시리즈의 일부입니다.
코드에서 냄새 나는 부분을 찾는 방법
Maxi Contieri ・ 2021년 5월 21일 ・ 7분 읽기
Reference
이 문제에 관하여(코드 냄새 144 - 대체 가능한 개체), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mcsee/code-smell-144-fungible-objects-3h87텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)