최근에는 구성을 위해 일반적인 setter 메서드 대신 구성 개체를 사용하는 클래스가 있습니다. 작은 예 :구성 structs 대 setters
class A {
int a, b;
public:
A(const AConfiguration& conf) { a = conf.a; b = conf.b; }
};
struct AConfiguration { int a, b; };
그나 :
- 당신은 개체를 확장하고 쉽게 사용자가 지금까지 그것에 대해 알 필요없이 새로운 가치에 대한 합리적인 디폴트 값을 보장 할 수 있습니다.
- 일관성을 위해 구성을 확인할 수 있습니다 (예 : 클래스에서 일부 값 조합 만 허용).
- 세터를 생략하면 많은 코드를 저장할 수 있습니다.
- Configuration 구조체의 기본 생성자를 지정하는 기본 생성자를 얻고
A(const AConfiguration& conf = AConfiguration())
을 사용하십시오.
단점 (들) :
- 당신은 건설 당시의 구성을 알 필요가 나중에 변경할 수 없습니다.
더 많은 단점이 있습니까? 그렇지 않은 경우 : 왜 더 자주 사용하지 않습니까?
저는 최근에 제가 지원하고있는 오래된 코드베이스로 이것을 실행했습니다. 그것은 꽤 성가신 일입니다. –
Windows API는 크기 필드를 추가하고 구조체가 POD인지 확인하고 끝에 데이터 필드를 추가하는 것으로 충분합니다. 지원하는 오래된 생성자를 추가하여 새로운 구조체를 만들고 (새로운 필드에 대해 적절한 기본값을 사용하여) 호환성이 실제로 _ 증가합니다. – sbi
나는 거울의 답을 썼다. –