SORU
28 NİSAN 2015, Salı


Nasıl-sonra-ata inşaat tekrar basitleştirmek için?

Aşağıdaki yöntemi var:

protected override bool ModifyExistingEntity(Product entity, ProductModel item)
{
    bool isModified = false;

    if (entity.Title != item.Title)
    {
        isModified = true;
        entity.Title = item.Title;
    }

    if (entity.ServerId != item.Id)
    {
        isModified = true;
        entity.ServerId = item.Id;
    }

    return isModified;
}

Eğer bu yöntemi uygulamak için daha iyi bir yol önerebilir misiniz acaba.

Sorun belli: özellik başına kopya yapıştırılan kod çok fazla neredeyse 5 satır. Orada olabilir, görüş alanımın dışında bir çözüm Func-s/ Expression-s kullanıyor.

CEVAP
28 NİSAN 2015, Salı


Temporal kaplin bir durum var, yani varlık atamaları ile değişip değişmediğini kontrol karıştırıyorsun. Eğer iki ayrı, kodunuzu daha temiz olur:

protected override bool ModifyExistingEntity(Product entity, ProductModel item)
{
    bool isModified = this.IsEntityModified(entity, item);

    if (isModified)
    {
        this.UpdateEntity(entity, item);
    }

    return isModified;
}

private bool IsEntityModified(Product entity, ProductModel item)
{
    return entity.Title != item.Title || entity.ServerId != item.ServerId;
}

private void UpdateEntity(Product entity, ProductModel item)
{
    entity.Title = item.Title;
    entity.ServerId = item.Id;
}

Akıllı ve funky herhangi bir malzeme (TM) Func<> ya da böyle bir şey, ne niyetinizi açıkça aktarım olmaz bu durumda yararlı görünmüyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • esnathesinger

    esnathesinge

    6 NİSAN 2009
  • Gavin Hoey

    Gavin Hoey

    21 Aralık 2007
  • inovationgmbh

    inovationgmb

    28 EYLÜL 2010