OK 그래서 내 코드 기반에서 인터페이스를 사용하기로 결정했는데 이것은 특정 작업에 대해 꽤 잘 작동합니다. 예를 들어 IUrlBuilder를 구현하는 URL 작성기 클래스가 있으며 구현이 중요하지 않습니다. 똑똑하지만 예를 들어이 인터페이스를 사용하십시오.인터페이스 기반 프로그래밍, 제대로하고 있습니까?
namespace SproutMessagingFramework.Webtext.Interfaces
{
using System.Net;
public interface ICookieJar
{
CookieCollection Collection { get; set; }
CookieContainer Container { get; set; }
void AddResponse(HttpWebResponse Response);
void AddResponse(HttpWebResponse Response, string Path, string Domain);
}
}
이 인터페이스는 매우 구체적입니다.이 두 가지 방법은 구체적인 클래스가 이미 수행하고있는 것보다 많이 수행하지 않을 것입니다. 그렇다면 왜 내가 인터페이스로 만들었습니까? 그럼 내 생각은 AddResponse의 구현을 변경해야하는 경우입니다.
이게 맞습니까? 아니면 코드베이스가 부풀어 오르고 있습니까?
인터페이스 기반 프로그래밍은 디커플링에 관한 것입니다. 버전을 변경하거나 다른 구현을하려고합니까? –
나는 의도에 대해 많이 걱정하지 않습니다. 만큼 내 코드 기반을 확장하는 수단은 내게 맞는 코드에 존재합니다. 나는 어떤 식 으로든 프레임 워크를 만들지는 않겠지 만 동시에 발에서 자신을 쏘지 않을 것이다. – deanvmc