2010-07-18 14 views
31

पढ़ते समय, मैं उन संदर्भों को देखता रहता हूं जिन्हें वे Business Objects कहते हैं। मैंने विकिपीडिया पर देखा है और ऐसा है लेकिन मुझे Business Object क्या नहीं मिल रहा है।बिजनेस ऑब्जेक्ट्स क्या हैं और बिजनेस लॉजिक क्या है?

क्या किसी ऐसे व्यक्ति के लिए यह कोई आसान स्पष्टीकरण है जो सॉफ़्टवेयर आर्किटेक्चर के बारे में कुछ नहीं जानता है?

इसके अलावा, Business Logic क्या है?

+0

कृपया उल्लेख [इस] (http://stackoverflow.com/questions/360860/what-is-domain-logic/38303676#38303676) जवाब जो आपके प्रश्न से संबंधित है। – palash140

उत्तर

20

यह मानव-दुनिया वस्तु जो प्रणाली के साथ एक व्यापार वस्तु है बातचीत करने के लिए आशा की जाती है का प्रतिनिधित्व करने वाली प्रणाली में

हर इकाई में आसान है।

व्यावसायिक वस्तुओं में हेरफेर करने के आसपास सिस्टम में मानव-विश्व तर्क एक व्यावसायिक तर्क है।

यह क्रियान्वयन विवरण का हिस्सा होने वाली वस्तुओं और तर्क का विरोध है।

उदाहरण के लिए बहु-स्तरीय व्यापार प्रणाली आदेश/व्यापार व्यावसायिक वस्तुओं में होगा, लेकिन दिल की धड़कन कार्यान्वयन विस्तार होगा।

स्ट्रीमिंग के लिए एन्कोडिंग ऑर्डर/व्यापार ऑब्जेक्ट्स का तर्क कार्यान्वयन विवरण होगा, जबकि ऑर्डर स्टेट को बदलने के तर्क को व्यापार पूरा होने के बाद 'पूरा' करने का तर्क एक व्यावसायिक तर्क है।

+0

तो, अगर मैंने आपको सही तरीके से प्राप्त किया है, तो कोड मॉडल में से प्रत्येक क्लास सीधे डोमेन मॉडल से आता है, एक बिजनेस ऑब्जेक्ट है? –

+0

@devoured elysium - हाँ, लेकिन "डोमेन मॉडल" एक ही प्रकार का शब्द है "व्यापार वस्तु" और "व्यावसायिक तर्क", और जबकि इन तीनों को एक दूसरे के साथ संबंधों में बहुत अच्छी तरह व्यक्त किया जा सकता है, यह स्पष्ट नहीं हो सकता है कि क्या उनका मतलब पूर्ण में है :) – bobah

16

ठीक है, एक व्यापार वस्तु को आम तौर पर एक वर्ग माना जाता है जो एक इकाई का प्रतिनिधित्व करता है, उदा। एक किताब या एक दुकान। इस तरह के वर्ग में मूल्य, रंग, चौड़ाई, आईएसबीएन संख्या आदि जैसे कुछ गुण होते हैं। जावा या .NET में, इसमें तथाकथित सेटर्स और गेटर्स होते हैं, यानी वे प्रोपरीज सेट या प्राप्त करते हैं।

दूसरी ओर व्यापार तर्क वह हिस्सा या प्रोग्राम (वह परत) है जो उस गुणों के साथ काम करता है, यानी यह पुस्तक कैसे बेची जाती है। डेटाबेस लॉजिक लेयर डेटाबेस तक पहुंचने के लिए व्यावसायिक ऑब्जेक्ट्स का उपयोग करता है।

3

यह फ़न लॉजिक के विपरीत है।

+0

और वह क्या है? –

+0

व्यवसाय के विपरीत मजेदार है। यदि आप अभी तक नहीं जानते हैं, तो आपने कभी असली कंपनी में काम नहीं किया ... – f1sh

+1

...या कभी एक क्रैपी के लिए काम नहीं किया। – nothingisnecessary

9

हे भस्म हो गया, जब मैंने भी विकास करना शुरू किया, तो मुझे इस शब्दावली में परेशानी थी।

असल में, "व्यवसाय" शब्द का एकमात्र कारण उपयोग किया जाता है, क्योंकि शब्दावली वाणिज्यिक सॉफ्टवेयर के संदर्भ में विकसित हुई है। तो इस अर्थ में, यह माना जाता है कि सॉफ्टवेयर व्यावसायिक उद्देश्यों के लिए बनाया गया है ... कहने के विरोध में, कलात्मक, सौंदर्य, या रचनात्मक उद्देश्यों।

तो, व्यवसाय की वस्तु असली दुनिया "व्यापार" वस्तुओं का सरल कोड प्रतिनिधित्व है। तो, आपके पास एक उत्पाद कक्षा, या एक कर्मचारी वर्ग हो सकता है।

व्यवसाय तर्क, उस एप्लिकेशन के भीतर तर्क है जो "व्यवसाय" के लिए विशिष्ट है, जिसे सॉफ़्टवेयर के लिए डिज़ाइन किया गया था। तो, कर गणना जैसी चीजें, या कैसे ग्राहकों से संबंधित उत्पादों ... उस तरह की चीज।

ध्यान दें कि व्यावसायिक वस्तुओं या व्यावसायिक तर्क का विचार वीडियो गेम विकास, या कलात्मक विकास पर लागू नहीं होगा।

यह कुछ ढांचे, या libraires, जैसे ओआरएमएस या यूनिट परीक्षण पुस्तकालयों पर भी उदाहरण के लिए लागू नहीं होगा, क्योंकि वे पुन: प्रयोज्य घटक हैं जो किसी भी "व्यवसाय" के लिए विशिष्ट नहीं हैं।

3

पारंपरिक 3 स्तरीय प्रोग्रामिंग में आपके पास तीन तार्किक परतें या स्तर हैं।आपके पास प्रस्तुति परत है जो उपयोगकर्ता इंटरफ़ेस है, नीचे की परत डेटाबेस परत होगी। मध्यम परत व्यापार वस्तुओं परत होगी। जैसा कि ऊपर बताया गया है कि व्यापार वस्तुओं को सारणीबद्ध किया जाना चाहिए कि साइट व्यापार के बारे में बिल्कुल नहीं हो सकती है। यह अमूर्तता की एक परत है जो प्रस्तुति परत में परिवर्तन करना या किसी भिन्न डेटा स्रोत पर स्विच करना आसान बनाता है।

यदि आपके उपयोगकर्ता इंटरफ़ेस स्तर के पीछे कोई या बहुत कम कोड नहीं है। यह डिजाइनरों के साथ प्रोग्रामर के साथ काम करना आसान बनाता है। डिजाइनर साइट के स्वरूप और अनुभव को बदल सकते हैं, बिना प्रोग्रामर को कोड के पर्याप्त पुनर्लेखन करने के लिए जो उस साइट को काम करता है। व्यापार वस्तुओं की परत के साथ आप साइट की भारी सूची करते हैं। आप बिजनेस ऑब्जेक्ट के बिना डेटाबेस लेयर में कॉल करते हैं यह जानकर कि आपकी डेटाबेस परत एक्सएमएल या रिलेशनल डेटाबेस में है या नहीं। और व्यापार ऑब्जेक्ट परत तब यूआई परत को प्रतिक्रिया अपडेट करेगी। आम तौर पर इस्तेमाल किया जाने वाला उदाहरण बैंक लेनदेन के लिए होता है। उपयोगकर्ता इंटरफ़ेस में एक ग्राहक उस राशि में प्रवेश करता है जो वह अपने बचत खाते से अपने चेकिंग खाते में स्थानांतरित करना चाहता है।

व्यापार ऑब्जेक्ट परत में बैंक के लिए व्यवसाय नियम होंगे। इसका मतलब है कि यह उपयोगकर्ताओं के बचत खाते की शेष राशि की जांच करेगा और सुनिश्चित करेगा कि हस्तांतरण की राशि खाते के शेष से अधिक न हो। व्यापार परत में वे कक्षाएं होंगी जो वास्तव में बचत खाते और चेकिंग खाते दोनों के लिए नए शेषों की गणना करती हैं और यह डाटाबेस को अद्यतन करने के लिए डेटाबेस परत को चेतावनी देगी।

0

एक खोज वस्तु पर एक व्यापार वस्तु की परिभाषा मुश्किल है क्योंकि यह आपको बताएगी कि बिजनेस ऑब्जेक्ट्स एसएपी द्वारा अधिग्रहित एक कंपनी है। लेकिन ऐसा नहीं है कि ज्यादातर लोग क्या देखते हैं।

एक व्यावसायिक वस्तु व्यवसाय तर्क मॉडल का एक व्यावसायिक परिदृश्य है।

उदाहरण के लिए: खरीद डोमेन में: गतिविधियों की एक पूरी सूची है जिसे करने की आवश्यकता है। वार्तालाप अवधि के लिए अनुबंध उत्पन्न करने के लिए उत्पादों के लिए जानकारी का अनुरोध करने के लिए व्यय विश्लेषण से । तो इस विशेष परिदृश्य में, आरएफआई (सूचना के लिए अनुरोध) जैसे दस्तावेज़ को आरएफआई बिजनेस ऑब्जेक्ट का उदाहरण माना जा सकता है (इसमें सत्यापन से संबंधित सभी तर्क संबंधित होंगे)।

0

एसएपी श्रृंखला व्यापार वस्तु ओरेकल'कोर डिजाइन पैटर्न के अंदर व्यापार वस्तु के साथ अलग है जो अनुप्रयोग सेवा परत के साथ बातचीत करती है ... हाँ, व्यापार वस्तु समग्र इकाई के साथ काम करती है, लेकिन इसमें व्यापार तर्क है, यह व्यवसाय ले सकता है राज्य, कुछ आसान समायोजन विधियों और वे व्यापारिक जानकारी वाहक हैं जो गतिशील राज्यों के आदान-प्रदान और अनुप्रयोग स्तरों या डोमेन के बीच पार करते हैं, लेकिन जब विभिन्न संदर्भ में, इसमें अलग-अलग विस्तृत निर्दिष्ट नाम होते हैं, उदाहरण के लिए, हम कह सकते हैं कि वेब सेवा अनुरोध एक व्यवसाय है XML स्वरूप में वस्तु ... यह डेटा इकाई के समान नहीं है

1

व्यापार वस्तु:

class User { 
    long id; 
    String fullNames; 
    int age; 
} 

class Book { 
    long id; 
    String bookTitle; 
} 

class Sales { 
    long id; 
    long userID; 
    long bookID; 
} 

व्यापार तर्क:

class BookSalesController { 
    private User user = new User(); 
    private Book book = new Book(); 
    private Sales sale = null; 

    public Sale sale(long saleID) { 
     String query = "SELECT * FROM Sales s WHERE s.id = :saleID"; 
     .... 
     .... execute the query 

     // Assuming we have our Result Set here by now 

     if (rs.next()) { 
      sale = new Sales(rs.getString("User Names")); 
      sale.setUserID(rs.getLong(userID)); 
      sale.setBookID(rs.getLong(bookID)); 
     } 

     return sale; 
    } 
} 
संबंधित मुद्दे