인터페이스를 구현하여 사람들이 우리의 핵심 기능을 확장 할 수있는 프레임 워크를 작성하려고합니다. 아래는이 인터페이스에 대한 간단한 예제입니다.메서드 매개 변수와 매개 변수 개체
public interface MyInterface
{
IData GetData(string p1, char p2, double p3);
}
최근에, 우리는이 인터페이스 (내가 따라 암호를 해독하지 말아야 알고 있지만, 사실은 우리가 아직이 인터페이스를 구현하는 모든 제 3 자이없는 것입니다을 수정하기로 결정했습니다, 그래서 우리는 기회가 이 인터페이스를 올바르게 구현하기위한 "do-over").
소프트웨어가 제대로 작동하려면이 인터페이스에 2 개의 매개 변수를 추가해야합니다. 우리가 생각하는 두 가지 방법은 다음과 같이 서명에 추가됩니다
public interface MyInterface
{
IData GetData(string p1, char p2, double p3, bool p4, DateTime p5);
}
또는하여
이public class MyParameters
{
public bool p4 { get; set; }
public DateTime p5 { get; set; }
}
같은 매개 변수 개체를 만드는 등 같은 방법의 끝 부분에 추가 :
public interface MyInterface
{
IData GetData(string p1, char p2, double p3, MyParameters p4);
}
나는 어떤 방법으로 진행할 지 "가장 올바른"지침을 찾고 있습니다. 두 범주 모두에서 찬반 양론을 볼 수는 있지만, 편견이 나를 잘못된 길로 인도하는 것은 원하지 않습니다.
내 주요 관심사 중 일부는 다음과 같습니다 소프트웨어의
- 확장 성 - 나는 사용자가
- 유지 보수성 인터페이스를 구현하여 나는 아직 생각하지 않은 일을 할 수 있어야합니다 - 이상적으로, 나는
- 청소 API 다시 GetData의()를 호출을 담당하는 코드를 만지지 필요가 없습니다 싶습니다 - 제 3 자 개발자가 싫증이 나다 내가 할에 도착 솔루션을하지 않으을
이 문제에 대한 지침을 얻기 위해 온라인에서 묻는 질문을 모르겠습니다. 나는 대답이 "의존적이다"(p1-p5가 GetData() 함수의 목적과 얼마나 관련이 있는지 등), 누군가가 나를 평가할 때 도움을 요청해야하는 질문 목록을 가리킬 수 있다고 생각한다. 한 솔루션이 다른 솔루션보다 나은지 여부
매개 변수 유형에 대한 인터페이스가있는 것은 좋지만 인터페이스가 버전 화 될 수 없다고 생각하면 API가 확산되면 더 이상 추가 할 수없는 기능 (예 : 하나 이상의 매개 변수 추가)이 기존 유형을 손상시키지 않고 매개 변수 유형에 추가됩니다. 코드. –