কয়েক মাস আগে আমি একটি নতুন প্রকল্পে কাজ শুরু করেছিলাম এবং কোডটি দিয়ে যাওয়ার সময় এটি আমাকে ব্যবহৃত স্ট্যাটিক পদ্ধতিগুলির পরিমাণকে স্ট্রোক করে। কেবল ইউটিলিটি পদ্ধতি হিসাবেই নয় collectionToCsvString(Collection<E> elements)
, এতে প্রচুর ব্যবসায়িক যুক্তিও রাখা হয়।
আমি এর পিছনে যুক্তির জন্য দায়ী ব্যক্তিকে জিজ্ঞাসা করলে, তিনি বলেছিলেন যে এটি স্প্রিং-এর অত্যাচার থেকে পালানোর এক উপায় । এটি এই চিন্তাভাবনা প্রক্রিয়াটির চারপাশে চলেছে: গ্রাহক রসিদ তৈরির পদ্ধতিটি বাস্তবায়নের জন্য, আমাদের একটি পরিষেবা থাকতে পারে
@Service
public class CustomerReceiptCreationService {
public CustomerReceipt createReceipt(Object... args) {
CustomerReceipt receipt = new CustomerReceipt();
// creation logic
return receipt;
}
}
এখন, লোকটি বলেছে যে সে স্প্রিংয়ের দ্বারা অযথা পরিচালিত ক্লাস করা অপছন্দ করে, কারণ এটি ক্লায়েন্ট ক্লাসগুলি তাদের নিজেরাই বসন্তের মটরশুটি হওয়া উচিত। আমরা স্প্রিংয়ের মাধ্যমে পরিচালিত সমস্ত কিছু শেষ করি, যা প্রক্রিয়াগত উপায়ে স্টেটলেস অবজেক্টের সাথে কাজ করতে আমাদের বেশ বাধ্য করে। কম-বেশি যা এখানে বর্ণিত হয়েছে তা https://www.javacodegeeks.com/2011/02/domain-driven-design-spring-aspectj.html
উপরের কোডটির পরিবর্তে তার রয়েছে
public class CustomerReceiptCreator {
public static CustomerReceipt createReceipt(Object... args) {
CustomerReceipt receipt = new CustomerReceipt();
// creation logic
return receipt;
}
}
আমি যখন সম্ভব তখন ক্লাস পরিচালনা করা স্প্রিং এড়িয়ে যাওয়ার বিষয়টি নিয়ে তর্ক করতে পারি, তবে যা আমি দেখিনা তা হ'ল স্থির থাকার সুবিধা। এই স্থিতিশীল পদ্ধতিগুলিও রাষ্ট্রহীন, তাই খুব ওও নয়। আমি কিছু হিসাবে আরো স্বাচ্ছন্দ্য বোধ করবে
new CustomerReceiptCreator().createReceipt()
তিনি দাবি করেন যে স্থির পদ্ধতির কিছু বাড়তি সুবিধা রয়েছে। যথা:
- পড়া সহজ। স্থিতিশীল পদ্ধতিটি আমদানি করুন এবং আমাদের কেবল ক্রিয়াকলাপের যত্ন নেওয়া দরকার, কোন শ্রেণি এটি করছে না।
- স্পষ্টতই ডিবি কলমুক্ত একটি পদ্ধতি, সুতরাং কর্মক্ষমতা অনুযায়ী সস্তা; এবং এটি পরিষ্কার করে দেওয়া একটি ভাল জিনিস, যাতে সম্ভাব্য ক্লায়েন্টকে কোডে প্রবেশ করা এবং এটির জন্য পরীক্ষা করা প্রয়োজন।
- পরীক্ষা লিখতে আরও সহজ Eas
তবে আমি কেবল অনুভব করি যে এটির সাথে পুরোপুরি ঠিক নেই এমন কিছু আছে, তাই আমি এই বিষয়ে আরও কিছু পাকা বিকাশকারীদের ধারণা শুনতে চাই।
সুতরাং আমার প্রশ্নটি হল, প্রোগ্রামিংয়ের এই পদ্ধতিটির সম্ভাব্য সমস্যাগুলি কী কী?
static
পদ্ধতি যা আপনি উপরে ব্যাখ্যা করা হয় একজন সাধারণ কারখানা পদ্ধতি। কারখানার পদ্ধতিগুলি স্থির করে তোলা বেশ কয়েকটি বাধ্যতামূলক কারণে সাধারণভাবে গৃহীত কনভেনশন। এখানে কারখানার পদ্ধতি উপযুক্ত কিনা তা আলাদা বিষয়।