
Принцип «Инкапсулируйте то, что изменяется» — это принцип в проектировании программного обеспечения, который предполагает изоляцию и скрытие частей вашего кода, которые могут измениться. Этот принцип является частью более широкого «Принципа открытости/закрытости» из принципов SOLID.
В сущности, это означает, что вам следует инкапсулировать или обернуть части вашего кода, которые могут быть подвержены изменениям в будущем, внутри хорошо определенных и легко заменяемых компонентов, вместо распространения этих изменений по всей вашей кодовой базе. Это способствует модульности и делает ваш код более поддерживаемым и менее подверженным ошибкам.
Вот простой пример:
Представьте, что вы разрабатываете программу, которая вычисляет цену продукта на основе различных факторов, таких как базовая цена продукта, налоги и скидки. В этом случае вы должны инкапсулировать код, связанный с расчетом налогов и скидок, отдельно от основного расчета цены.
class PriceCalculator {
private basePrice: number;
constructor(basePrice: number) {
this.basePrice = basePrice;
}
public calculateTotalPrice(): number {
const taxAmount = this.calculateTax();
const discountAmount = this.calculateDiscount();
return this.basePrice + taxAmount - discountAmount;
}
private calculateTax(): number {
// Логика расчета налогов
return this.basePrice * 0.1; // Например, 10% налог
}
private calculateDiscount(): number {
// Логика расчета скидок
return 0; // По умолчанию скидки отсутствуют
}
}
В этом примере логика расчета налогов и скидок инкапсулирована в частных методах. Если ставки налогов или правила скидок изменятся в будущем, вы можете внести изменения в эти частные методы без влияния на остальной код, который использует класс PriceCalculator.
Инкапсулирование изменяемых частей упрощает адаптацию к изменяющимся требованиям или бизнес-правилам без необходимости изменения больших участков вашей кодовой базы, что может снизить риск возникновения новых ошибок и улучшить поддерживаемость кода.

Оставьте комментарий