Use a Configuration File은 긴 매개 변수 목록 문제를 해결하는 방법 중 하나로, 객체 생성에 필요한 매개변수를 파일로부터 읽어와 객체를 생성하는 방식입니다.
Configuration 파일은 일반적으로 텍스트 파일로 구성되며, 객체 생성에 필요한 매개변수를 파일에 저장해 놓고, 이를 읽어와 객체를 생성합니다.
이를 통해 객체 생성에 필요한 매개변수의 개수를 줄일 수 있으며, 객체 생성 코드의 가독성과 유지보수성을 높일 수 있습니다.
다음은 C++ 언어를 사용하여 Configuration 파일을 사용하여 객체를 생성하는 예시입니다.
#include <iostream>
#include <fstream>
#include <string>
class Product {
public:
double price;
int quantity;
double tax_rate;
double discount;
Product(double price, int quantity, double tax_rate, double discount)
: price(price), quantity(quantity), tax_rate(tax_rate), discount(discount)
{}
};
Product read_product_configuration(const std::string& file_path) {
double price;
int quantity;
double tax_rate;
double discount;
std::ifstream config_file(file_path);
config_file >> price >> quantity >> tax_rate >> discount;
return Product(price, quantity, tax_rate, discount);
}
int main() {
Product product = read_product_configuration("product_config.txt");
std::cout << "Price: " << product.price << std::endl;
std::cout << "Quantity: " << product.quantity << std::endl;
std::cout << "Tax Rate: " << product.tax_rate << std::endl;
std::cout << "Discount: " << product.discount << std::endl;
return 0;
}
위의 예시에서, Product 클래스는 객체 생성 시 많은 매개변수를 받아 초기화하는 생성자를 가지고 있습니다.
이에 대해 Configuration 파일을 사용하여 read_product_configuration() 함수를 구현하였습니다.
이 함수는 file_path 매개변수로 전달된 파일을 읽어와 Product 객체를 생성하여 반환합니다.
main() 함수에서는 read_product_configuration() 함수를 호출하여 Product 객체를 생성하고, 객체의 속성을 출력합니다.
이렇게 Configuration 파일을 사용하여 객체 생성에 필요한 매개변수를 관리하면, 객체 생성 코드의 가독성과 유지보수성을 높일 수 있습니다.
또한, 매개변수를 파일로 저장해 놓으면, 이를 편집하여 객체 생성에 필요한 매개변수를 변경할 수 있습니다.
따라서, 객체 생성 코드를 수정하지 않고도 매개변수를 변경할 수 있어 유연성이 높아집니다.
'리팩터링 > 리팩터링 기법' 카테고리의 다른 글
리팩터링. Use Default Values (1) | 2023.03.01 |
---|---|
리팩터링. Use a Data Structure (0) | 2023.02.28 |
리팩터링. Use a Builder (0) | 2023.02.26 |
리팩터링 기법. 매개변수를 질의 함수로 바꾸기 (Replace Parameter with Query) (0) | 2023.02.25 |
리팩터링. 조건문을 다형성으로 바꾸기(Replace Conditional with Polymorphism) (0) | 2023.02.23 |