мне нужно разделить некоторые общие функциональные возможности между двумя статическими классами:Share общие функциональных возможностей между двумя статическими классами
public static class Class
{
public static void ClassMethod()
{
SharedMethod<object>();
}
//ideally a private method
internal static void SharedMethod<T>()
{
}
}
public static class GenericClass<T>
{
public static void GenericClassMethod()
{
SharedMethod<T>();
}
}
Есть ли лучший дизайн здесь? internal
- мой последний выбор, но действительно метод SharedMethod
не имеет значения за пределами этих двух классов.
Требования:
Я не могу объединить их в один класс, мне нужно их по отдельности, один общий и другой нет.
Классы не обязательно должны быть строго статичными, но они не должны быть реалистичными или наследуемыми.
SharedMethod
может упасть в любом классе, это не имеет значения.
Какова техническая причина, по которой их нельзя комбинировать? в частности, я думаю о одном статическом классе с комбинацией общих и не общих методов, для exmaple –
@MarcGravell его более семантические причины. 'Class' и' GenericClass <> 'связаны друг с другом, и они служат схожим целям, но идея передается лучше, если их разделять. Его больше похожи на «Tuple» и «Tuple <>» и т. Д. – nawfal
@nawfal Обычно мне нравятся абстрактные вопросы архитектуры программного обеспечения, но я думаю, что никто не сможет помочь вам, не уточняя, что представляют собой ваши классы, какие операции они имеют (и что такое общий) и как они должны использоваться в приложении. Пример 'Tuple' и' Tuple <> 'слишком тривиален, потому что можно просто определить' public class Tuple: Tuple