SORU
10 HAZİRAN 2010, PERŞEMBE


Kullanıyor .Benim C 4.0 Dizilerini NET# Kötü bir Tasarım Kararı Kodu?

Tuple sınıfta birlikte .net 4, eğer benim tasarım bunları kullanmak kötü bir seçim olup olmadığını karar vermeye çalışıyorlar. Gördüğüm kadarıyla, bir Tuple a class (diğer anlamları da vardır eminim) yazmak için bir kısayol olabilir.

Bu yüzden:

public class ResultType
{
    public string StringValue { get; set; }
    public int IntValue { get; set; }
}

public ResultType GetAClassedValue()
{
    //..Do Some Stuff
    ResultType result = new ResultType { StringValue = "A String", IntValue = 2 };
    return result;
}

Bu eşdeğerdir:

public Tuple<string, int> GetATupledValue()
{
    //...Do Some stuff
    Tuple<string, int> result = new Tuple<string, int>("A String", 2);
    return result;
}

Dizilerini de anlıyorum olasılığını bir kenara bırakarak, Tuple kötü bir tasarım tercihi ile örnektir? Bana kendini belgeleyen ve temiz olarak daha az karmaşa gibi, ama değil gibi görünüyor. Bu tür çok açıktır ResultType Daha sonra sınıfın her parçası anlamına gelir ama korumak için ekstra kod ne ile yani. Tuple<string, int> Yukarı Bak Item her neyi temsil ettiğini anlamaya gerekir, ama yazmak ve daha az kod korumak.

Bu seçenek ile herhangi bir deneyimi büyük mutluluk duyacağız.

CEVAP
10 HAZİRAN 2010, PERŞEMBE


Dizilerini de ve bunları oluşturma ve kullanma kontrol edersen çok iyi - onları anlamak için gerekli olan bağlam, koruyabilirsiniz.

Ortak bir API, ancak daha az etkilidir. Tüketici (değil), ya da tahmin veya belgeler, özellikle Tuple<int, int> gibi şeyler aramak için vardır.

Özel/iç üyeleri için bunları kullanmak, ama kamu/korumalı üyeleri için sonuç sınıfları kullanmak istiyorum.

This answer de bazı bilgiler var.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • B4ROK

    B4ROK

    1 EKİM 2008
  • hockeywebcasts

    hockeywebcas

    31 EKİM 2012
  • Jonathan Flavell

    Jonathan Fla

    1 HAZİRAN 2006