我刚刚在我的一个类中创建了以下方法
public static bool Assimilate(this List<Card> first,List<Card> second) { // Trivial if (first.Count == 0 || second.Count == 0) { return false; } // Sort the lists,so I can do a binarySearch first.Sort(); second.Sort(); // Copia only the new elements int index; for (int i = 0; i < second.Count; i++) { index = first.BinarySearch(second[i]); if (index < 0) { first.Insert(~index,second[i]); } } // Edit second = null; return true; }
我的一个朋友,审查我的代码,说我不应该创建’扩展List类’的方法,因为这违反了开放/封闭原则.
如果我想扩展类List,我应该创建一个继承自List的新类,并在该新类中实现我的“merge”方法.
他是对的吗?扩展List类违反了开放/封闭原则?