这是否违反了open/closed原则?
Does this violates open/closed principle?
我用 .NET Core 制作了一个 webapi,我有一个“Startup”class。这个 class 有一个“ConfigureServices”方法说:
// 此方法由运行时调用。使用此方法向容器添加服务。
但是每次添加新服务,我都需要“修改”这个方法,但是违反了open/closed原则
如果我使用“IF”和“ELSE”条件来做与修改此方法相同的事情。
那么你怎么看这个?
恰恰相反。您正在自己的 Startup 中扩展该方法,而不是修改基础 Startup。 This article 来自 wikipedia 明确指出,为了遵守 open/closed 原则
software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification
我不太明白你在 if/else 部分的意思。
我用 .NET Core 制作了一个 webapi,我有一个“Startup”class。这个 class 有一个“ConfigureServices”方法说:
// 此方法由运行时调用。使用此方法向容器添加服务。
但是每次添加新服务,我都需要“修改”这个方法,但是违反了open/closed原则
如果我使用“IF”和“ELSE”条件来做与修改此方法相同的事情。
那么你怎么看这个?
恰恰相反。您正在自己的 Startup 中扩展该方法,而不是修改基础 Startup。 This article 来自 wikipedia 明确指出,为了遵守 open/closed 原则
software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification
我不太明白你在 if/else 部分的意思。