पुन: प्रयोज्य व्यावसायिक वस्तुओं का उपयोग करते समय, दृश्य मॉडल बनाते समय सबसे अच्छा अभ्यास क्या माना जाता है?
हम एक ऐसी वस्तु का उपयोग करते हैं जिसे हम Builder
अपने दृश्य मॉडल बनाने के लिए कहते हैं। विचारों की प्रत्येक तार्किक इकाई (आदेश, उपयोगकर्ता आदि) के लिए एक बिल्डर, जहां प्रत्येक इकाई में कई अलग-अलग दृश्य मॉडल हो सकते हैं (आदेश में सारांश, आदेश लाइनें आदि शामिल हैं)।
व्यू मॉडल बनाने के लिए एक बिल्डर एक या अधिक मानक व्यावसायिक वस्तुओं के माध्यम से डेटा खींच सकता है।
जब दृश्य मॉडल में व्यावसायिक वस्तुओं / मॉडल का उपयोग करने की बात आती है, तो इसे बेहतर अभ्यास क्या माना जाता है?
दृष्टिकोण १
दृश्य मॉडल में व्यावसायिक वस्तुओं के उपयोग की अनुमति दें?
//Business object in some library
public class Order
{
public int OrderNum;
public int NumOrderLines;
//...
}
//Order builder in website
public class OrderBuilder
{
public OrderSummary BuildSummaryForOrder(int OrderNum)
{
Some.Business.Logic.Order obOrder = Some.Business.Logic.GetOrder(OrderNum);
//Any exception handling, additional logic, or whatever
OrderSummary obModel = new OrderSummary();
obModel.Order = obOrder;
return obModel;
}
}
//View model
public class OrderSummary
{
public Some.Business.Logic.Order Order;
//Other methods for additional logic based on the order
//and other properties
}
दृष्टिकोण २
व्यावसायिक वस्तुओं से केवल आवश्यक डेटा लें
//Business object in some library
public class Order
{
public int OrderNum;
public int NumOrderLines;
//...
}
//Order builder in website
public class OrderBuilder
{
public OrderSummary BuildSummaryForOrder(int OrderNum)
{
Some.Business.Logic.Order obOrder = Some.Business.Logic.GetOrder(OrderNum);
//Any exception handling, additional logic, or whatever
OrderSummary obModel = new OrderSummary()
{
OrderNum = obOrder.OrderNum,
NumOrderLnes = obOrder.NumOrderLines,
}
return obModel;
}
}
//View model
public class OrderSummary
{
public int OrderNum;
public int NumOrderLines
//Other methods for additional logic based on the order
//and other properties
}
मैं दोनों को लाभ और कमियां देख सकता हूं, लेकिन मुझे आश्चर्य है कि क्या कोई स्वीकृत तरीका है? दृष्टिकोण 1 में, मॉडल के आसपास कोड का कोई दोहराव नहीं है, लेकिन यह व्यावसायिक तर्क पर निर्भरता बनाता है। दृष्टिकोण 2 में, आप केवल दृश्य के लिए आवश्यक डेटा लेते हैं, लेकिन आप मॉडल के चारों ओर कोड डुप्लिकेट करते हैं।