Есть ли язык, который имеет форму шаблонного кода?Позвольте мне объяснить, что я имею в виду ... Сегодня я работал над проектом на C #, в котором один из моих классов был очень повторяющимся, набор методов получения и установки свойств.
public static int CustomerID
{
get
{
return SessionHelper.Get<int>("CustomerID", 0); // 0 is the default value
}
set
{
SessionHelper.Set("CustomerID", value);
}
}
public static int BasketID
{
get
{
return SessionHelper.Get<int>("BasketID", 0); // 0 is the default value
}
set
{
SessionHelper.Set("BasketID", value);
}
}
... and so forth ...
Я понимаю, что это может сломатьсяв основном это тип, имя и значение по умолчанию.
Я видел эту статью, которая похожа на ту, что я представляю, но не имеет места для параметров (по умолчанию).
Общее свойство в C #
Но я думал, что во многих случаях код разбивается на шаблоны.
Например, синтаксис может выглядеть так:
public template SessionAccessor(obj defaultValue) : static this.type this.name
{
get
{
return SessionHelper.Get<this.type>(this.name.ToString(), defaultValue);
}
set
{
SessionHelper.Set(this.name.ToString(), value);
}
}
public int CustomerID(0), BasketID(0) with template SessionAccessor;
public ShoppingCart Cart(new ShoppingCart()) with template SessionAccessor; // Class example
Я чувствую, что у этого было бы много возможностей в написании краткого, СУХОГО кода.Этот тип вещей может быть несколько достижим в C # с помощью рефлексии, однако это медленно, и это должно быть сделано во время компиляции.
Итак, вопрос: возможен ли такой тип функциональности в любом существующем языке программирования?