Merhaba arkadaşlar;
Daha önce söylediğim üzere helper yazımına yeniden başladım.Önceki kodlarla pek bir farkı yok, sadece biraz daha kontrollü ve hataları en aza indirmeyi amaçlıyorum.
module system.helper.newHtmlHelper;
class XmlElement
{
const (char)[] _htmlTag;
const (char)[][ const (char)[] ] _attributes;
const (char)[] _content;
this( const (char)[] tag)
in
{
assert( tag.length > 0, "Tag can't be empty.");
}
body
{
_htmlTag = tag;
}
this(const (char)[] tag, const(char)[][ const (char)[] ] attributes, const (char)[] content)
in
{
assert( (tag.length > 0), "Tag can't be empty." );
}
body{
_htmlTag = tag;
_attributes = attributes;
_content = content;
}
@property void setAttributes( const (char)[][] keys, const (char)[][] values )
in
{
assert( (keys.length == values.length ), "Length of the keys and values must be same." );
}
body
{
foreach(counter, key; keys ) {
_attributes[key] = values[counter];
}
}
@property setContent( const (char)[] content )
{
_content = content;
}
override string toString()
{
string result;
result ~= "<" ~ _htmlTag ~ " ";
foreach(key, value; _attributes) {
result ~= key ~ "=" ~ value;
}
result ~= ">" ~ _content ~ "</" ~ _htmlTag ~ ">";
return result;
}
}
Kodlar yukarıdaki gibi.Şimdilik pek bir değişiklik yok ama önceki kodları silip baştan başladım.En kısa zamanda yorum satırlarını ve birim testleri de ekleyeceğim.Şu haliyle kontrol ettim, bir hata ile karşılaşmadım.Yorumlarınızı bekliyorum.
Bir de aklıma bir şey takıldı.Daha önce XmlElement sınıfı içinde bir dinamik dizi tanımlayıp elemanları orada topluyorduk. Şimdi ise tasarımı tamamen ayırmak için başka bir modulde HtmlPage isimli bir sınıf oluşturup elemanları orada toplamayı düşünüyorum.Böylece hem daha ayrık olacak, hem de mümkün olduğunca gerçeğe daha yakın olacak.
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]