iyişey.Birileri lütfen yardımcı olun "" ve "" bu kavramı gösterir bir kod (veya) yarı? sonra önce olacak" /> iyişey.Birileri lütfen yardımcı olun "" ve "" bu kavramı gösterir bir kod (veya) yarı? sonra önce olacak" />
SORU
22 EKİM 2008, ÇARŞAMBA


Nedir &; gevşek bağlantı?"&"örnekler verin Lütfen

"Gevşek bağlantı." kavramı grok edemiyorum "Sözcüğü genellikle olumsuz bir çağrışım var, ben her zaman gevşek bağlantı . o yüzden unut gevşek yardımcı olmuyor sanırım ^em>iyişey.

Birileri lütfen yardımcı olun "" ve "" bu kavramı gösterir bir kod (veya) yarı? sonra önce olacak

CEVAP
22 EKİM 2008, ÇARŞAMBA


CartContents bir sınıf alışveriş sepeti öğeleri izlemek için kullanılan basit bir alışveriş sepeti uygulaması ve satın alma işlem için bir sınıf düşünün. Sipariş sepeti içeriği toplam değeri belirlemek gerekiyor, böyle yapabilir:

Sıkı Birleştiğinde Örnek:

public class CartEntry
{
    public float Price;
    public int Quantity;
}

public class CartContents
{
    public CartEntry[] items;
}

public class Order
{
    private CartContents cart;
    private float salesTax;

    public Order(CartContents cart, float salesTax)
    {
        this.cart = cart;
        this.salesTax = salesTax;
    }

    public float OrderTotal()
    {
        float cartTotal = 0;
        for (int i = 0; i < cart.items.Length; i  )
        {
            cartTotal  = cart.items[i].Price * cart.items[i].Quantity;
        }
        cartTotal  = cartTotal*salesTax;
        return cartTotal;
    }
}

Yordamlarından sipariş toplamı yöntemi (ve böylece Sipariş sınıfı) CartContents ve CartEntry sınıfların uygulama ayrıntıları bağlıdır nasıl dikkat edin. Eğer indirim için izin vermek için bu mantığı değiştirmek için denemek için olsaydı, büyük olasılıkla tüm 3 sınıf değiştirmek zorunda kalırız. Eğer Liste bir koleksiyon öğeleri takip etmek için kullanarak değiştirirsek ayrıca, Sipariş sınıfını değiştirmek iyi olurdu.

Şimdi burada aynı şeyi yapmak için biraz daha iyi bir şekilde

Daha Az Birleştiğinde Örnek:

public class CartEntry
{
    public float Price;
    public int Quantity;

    public float GetLineItemTotal()
    {
        return Price * Quantity;
    }
}

public class CartContents
{
    public CartEntry[] items;

    public float GetCartItemsTotal()
    {
        float cartTotal = 0;
        foreach (CartEntry item in items)
        {
            cartTotal  = item.GetLineItemTotal();
        }
        return cartTotal;
    }
}

public class Order
{
    private CartContents cart;
    private float salesTax;

    public Order(CartContents cart, float salesTax)
    {
        this.cart = cart;
        this.salesTax = salesTax;
    }

    public float OrderTotal()
    {
        return cart.GetCartItemsTotal() * (1.0f   salesTax);
    }
}

Sepeti satır öğesi uygulanması veya araba koleksiyonu için belirli bir mantığı ve sırası sadece bu class. Diğer sınıfları değiştirmek zorunda kalmadan bu sınıfların herhangi bir uygulama değiştirebiliriz. Bu ayırımı henüz daha tasarım, tanıtımı arabirimleri, vb geliştirerek alabiliriz, ama demek istediğimi anladın sanırım.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Murray Winiata

    Murray Winia

    2 ŞUBAT 2009
  • SHAYTARDS

    SHAYTARDS

    1 EKİM 2008
  • Vagrant Records

    Vagrant Reco

    8 Mayıs 2006