이 반 패턴의 이름이 어딘가에있을 것입니다. 그러나 나는 반 패턴 문헌에 대해 잘 알지 못한다.
다음 시나리오를 고려하십시오.
or0
클래스의 멤버 함수입니다. 더 좋든 나쁘 든 클래스 멤버 변수에 크게 의존합니다. 프로그래머 A가 와서을 or0
호출하는 대신 기능이 필요합니다 or0
. 프로그래머 A는 전체 클래스를 복사하고 이름을 바꿉니다. 내가 or0
말했듯이, 기능에 대한 멤버 변수에 크게 의존하기 때문에 그녀가 전화하지 않는 것 같습니다. 또는 주니어 프로그래머 일 수도 있고 다른 코드에서 호출하는 방법을 모를 수도 있습니다. 그래서 지금 우리가 가지고 or0
와 c0
(복사 C). 이 접근법에 대해 프로그래머 A를 완전히 비난 할 수는 없습니다. 우리 모두는 마감일이 촉박하며 작업을 완료하기 위해 코드를 해킹합니다.
여러 프로그래머가 유지 or0
하므로 이제 버전 orN
입니다. c0
이제 버전 cN
입니다. 불행히도 클래스를 포함하는 대부분의 프로그래머는 or0
완전히 알지 못하는 것 같았습니다 c0
.DRY 원칙의 지혜에 대해 내가 생각할 수있는 가장 강력한 주장 중 하나입니다. 에 코드를 독립적으로 유지 관리했을 수도 있습니다 c
. 어느 쪽이든이 나타납니다 or0
와 c0
서로 독립적으로 유지되었다. 그리고 기쁨과 행복,에서 cN
일어나지 않는 오류가 발생하고 있습니다 orN
.
그래서 몇 가지 질문이 있습니다.
1.)이 안티 패턴의 이름이 있습니까? 나는 이것이 너무 자주 일어나는 것을 보았는데 이것이 안티 패턴이 아니라는 것을 믿기 어려울 것입니다.
2.) 몇 가지 대안을 볼 수 있습니다.
a.) orN
필요한 모든 멤버 변수의 값을 지정하는 매개 변수를 사용하도록 수정 했습니다. 그런 다음 전달 된 모든 필수 매개 변수 cN
를 호출 하도록 수정하십시오 orN
.
b.) 수동으로 수정 프로그램을에서 orN
로 포트하십시오 cN
. (나는 이것을하고 싶지 않지만 현실적인 가능성이다.)
c.) orN
- cN
다시, 다시 말해, 나는 완전성을 기하기 위해 그것을 다시 언급한다.
d.) cN
고장난 곳 을 찾아서 독립적으로 수리하십시오 orN
.
대안 은 장기적으로 가장 좋은 해결책 인 것처럼 보이지만 고객이 구현할 수는 없을 것입니다. 문제를 바로 잡기 위해 시간이나 돈을 쓰지 말고 항상 같은 문제를 40 번이나 50 번 정도 고치는 데 시간과 돈이 필요합니까?
아무도 내가 고려하지 않은 다른 접근법을 제안 할 수 있습니까?