আমার কি কোনও সত্তায় বা ব্যবসায় স্তরতে গণনা যুক্তি যুক্ত করা উচিত?


15

সত্ত্বেও সরল গণনাটি সত্তা স্তরটিতে রাখা উচিত কিনা, বা সবেমাত্র কাঁচা ডেটা সংরক্ষণ করার জন্য এবং খাতটিকে ব্যবসায়ের স্তরে গণনার লজিক্স রেখে দেওয়ার জন্য খাঁটি হওয়া উচিত কিনা তা নিয়ে আমি সম্প্রতি একটি প্রশ্নের মুখোমুখি হয়েছিলাম।

সুতরাং আমার প্রশ্নটি হ'ল কোনও সত্তা শ্রেণীর বৈশিষ্ট্যগুলিতে সাধারণ গণনাগুলি সজ্জিত করা বুদ্ধিমান কি না?

উত্তর:


21

এটি আপনি যে ধরনের আর্কিটেকচার চান তার উপর নির্ভর করে।

  • ডোমেন চালিত ডিজাইনে, আপনি এমন একটি ডোমেন মডেল তৈরি করবেন যাতে ডেটা এবং কার্যকারিতা উভয়ই থাকে।

এর অর্থ হ'ল কোনওটির Orderএকটি সম্পত্তি (বা পদ্ধতি) রয়েছে যা উপরের ভিত্তিতে অর্ডারের মোট মূল্য ফেরত দেয় OrderLinesOrderআরো একটি পদ্ধতি হবে AddOrderItem(Product product, int amount)এবং Orderযদি সেখানে ইতিমধ্যে একটি কিনা চেক করবে OrderLineযে নির্দিষ্ট পণ্য জন্য।

এই জাতীয় মডেলটিতে আপনার কাছে এমন অবজেক্টগুলিও থাকতে পারে যা বাস্তব সত্তা নয়, যেমন Repositoryডেটা অ্যাক্সেস করার জন্য বা Factoryসত্তা তৈরির জন্য। এগুলিকে ডোমেন পরিষেবাদি বলা হয়। একটি অ্যাপ্লিকেশন স্তর ডোমেন পরিষেবাগুলি কল করার জন্য দায়বদ্ধ (উদাহরণস্বরূপ ডাটাবেস থেকে কোনও সত্তা পুনরুদ্ধার করতে) এবং তারপরে এটি সত্তায় কার্যকারিতা সম্পাদন করে। Application Layerযতটা সম্ভব পাতলা হওয়া উচিত।

এটি ডিডিডি সম্পর্কে একটি দুর্দান্ত নিবন্ধ যা এই ধারণাগুলি আরও বিশদে ব্যাখ্যা করে।

  • আপনি একটি অ্যানমিক ডোমেন মডেলও ব্যবহার করতে পারেন । এর অর্থ হ'ল আপনার সত্তাগুলিতে গেট / সেট বৈশিষ্ট্য রয়েছে এবং এতে কোনও আচরণ নেই। এই জাতীয় ডিজাইনে আপনার ব্যবসায়ের স্তরটিতে Orderদামের গণনা করা এবং সদৃশ যাচাই করার মতো আচরণ থাকবে OrderLines

অ্যানিমিক ডোমেন মডেলটি খারাপ জিনিস কিনা তা নিয়ে বিভিন্ন মতামত রয়েছে। ব্যক্তিগতভাবে আমি একটি বাস্তব ডোমেন মডেল পছন্দ করি।

এই নিবন্ধটি অ্যানিমিক এবং অ-অ্যানিমিক ডোমেন মডেলের মধ্যে পার্থক্য বর্ণনা করে।


হাই ওউটার, উত্তর এবং লিঙ্কগুলির জন্য ধন্যবাদ। আমি মনে করি যে কোনও ভুল মনের সেট এনেমিক ডোমেন মডেল ব্যবহার করার সময় সমস্ত ব্যবসায়িক লজিক (এমনকি খুব সাধারণ বিষয়গুলি) ব্যবসায়ের স্তরে রাখা উচিত। এটি এমন কিছু ক্ষেত্রে বুদ্ধিমান বলে মনে হয় যেখানে ব্যবসায়ের লজিক্স কেবলমাত্র মডেলের উপর নির্ভর করে। উদাহরণস্বরূপ, মডেলটিতে বিদ্যমান বৈশিষ্ট্য থেকে একটি সম্পত্তি গণনা করা হয়। ব্যবসায়ের লজিক্সগুলি মডেলটির উপর নির্ভর করে ব্যবসায়িক স্তরে রাখার জন্য আমি কোনও যুক্তিসঙ্গত কারণ খুঁজে পাইনি।

অ্যানিমিক ডোমেন মডেলটিতে, যেমন আমাদের ব্যবসায়িক ক্লাসের পাশাপাশি সত্তা শ্রেণি রয়েছে, তাদের মধ্যে বিভ্রান্তি এড়াতে ক্লাসগুলির নাম কীভাবে রাখবেন? আপনি কি প্রত্যয় ব্যবহারের পরামর্শ দিচ্ছেন? যদি হ্যাঁ, আপনি একটি উদাহরণ দিতে পারেন?
কাওয়াদজ

ডিডিডি-র ক্ষেত্রে, মূল্য নির্ধারণের যুক্তি জটিল হলে কী হবে? উদাহরণস্বরূপ, মূল্য অবস্থানের উপর ভিত্তি করে (কর), ব্যবহারকারীর তথ্য (জন্ম তারিখ ছাড়, সদস্যতার ছাড়), কুপন, ক্রেডিট কার্ড (ক্রেডিট কার্ডের বিশেষ ছাড়) ইত্যাদি ইত্যাদি কীভাবে আমরা Orderক্লাসের মধ্যে এই জাতীয় যুক্তি রাখতে পারি ?
Sher10ck

1
আপনার অর্ডার সামগ্রীতে গণনা করতে প্রয়োজনীয় এই সমস্ত তথ্য থাকা উচিত। কারণ আপনার বর্ণনার ভিত্তিতে এটি প্রকৃতপক্ষে সামগ্রীর অংশ হওয়া উচিত। তবে যদি যুক্তিটি সত্যই জটিল হয়ে যায় এবং আপনার এটি পরিবর্তন করার প্রয়োজন হতে পারে তবে আমি ক্যালকুলেটরটি সত্তা নির্মাতার কাছে একটি বস্তু হিসাবে পাস করব এবং সত্তাকে দাম নির্ধারণের জন্য অভ্যন্তরীণভাবে ক্যালকুলেটরটি ব্যবহার করতে দেব।
বুড়জুম

অ্যানিমিক ... দরিদ্র ডোমেনটি মনে হয় যেন এটি কোনওরকম অসুস্থতায় ভুগছে। আপনি বরং চালিত করা হবে না ?! হ্যাঁ!
ম্যাট জেনকিনস

1

ওয়েল, সত্তা এবং ব্যবসায়িক বিষয়গুলি প্রায় একই রকম, বেশিরভাগ সময়। উদাহরণস্বরূপ যদি আপনার একটি পণ্য শ্রেণি থাকে এবং আপনি এমন কোনও সম্পত্তি প্রকাশ করতে চান যা পণ্য শ্রেণিতে কিছু বিদ্যমান সম্পত্তি গ্রহণ করে এবং কিছু গণনা করে এবং তারপরে তা প্রকাশ করে। এই পদটিতে এটি সূক্ষ্ম যে, সেই সম্পত্তি তৈরির যুক্তিটি শ্রেণীর কাছে থেকে যায়।

এখন, প্রশ্ন আসতে পারে, আপনার ব্যবসায়ের স্তর শ্রেণিতে কোথায় ফিট করা যায়। আমি ব্যবসায়ের স্তরের শ্রেণীর ব্যবহার পছন্দ করি যা ব্যবসায় সমস্যার সাথে মোকাবিলা করার জন্য কিছু যুক্তিযুক্ত। আপনার পণ্যের উদাহরণ হিসাবে উদাহরণস্বরূপ, কোনও ব্যবসায়ের সমস্যা পেপালের মতো তৃতীয় পক্ষের বিক্রেতা ব্যবহার করে অর্থ চার্জ করা হতে পারে।

একটি মূল বিষয় মনে রাখতে হবে হ'ল একটি সত্তার সর্বদা একটি পরিচয় থাকে তবে একটি ব্যবসায়িক বিষয় হ'ল একটি পরিচয় with উদাহরণস্বরূপ পণ্য একটি সত্তা তবে অর্থের কোনও পরিচয় থাকে না। অর্থের বিভিন্ন 1000 উদাহরণ একই হবে।


হ্যাঁ. সম্পত্তির ব্যবসায়ের যুক্তি যদি একই মডেলের বিদ্যমান বৈশিষ্ট্যের উপর নির্ভর করে তবে কেবলমাত্র মডেলটিতে সম্পত্তি যুক্ত করা ভাল be এটি গণনা করা বৈশিষ্ট্যগুলির জন্য ব্যবসায় স্তর সহ অপ্রয়োজনীয় দম্পতিকে আলগা করতে সহায়তা করবে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.