这是否违反了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 部分的意思。