জাভা আইও ক্লাসগুলিতে কি ডেকোরেটর প্যাটার্নটি বিদ্যমান?


14

একটি কাজ আমি খুঁজে বের করতে চারটি গ্যাং নকশা প্যাটার্ন ক্লাস আছে java.io.Readerএবং তার উপশ্রেণী java.io.PushbackReader, java.io.BufferedReaderএবং java.io.FilterReaderদিয়ে সৃষ্টি হয়েছে।

এই পোস্ট অনুসারে , নকশার প্যাটার্নটি হবে সজ্জিত প্যাটার্ন। এটি কেবলমাত্র আমাকে যদি জ্ঞান করে তোলে PushbackReader, BufferedReaderএবং FilterReaderকার্যকরভাবে একটি তৈরি একই সময়ে ব্যবহার করা সজ্জিত করা যেতে পারে, BufferedPushbackFilterReader। এটাই কি ধারণা?


এই ক্লাসগুলির নির্মাতাদের দিকে তাকান। তারা কি আপনাকে স্ট্যাকের অনুমতি দেয়, যেমন Buffered প্রকৃতির উপরে Filterপ্রকৃতি?
কিলিয়ান ফট

@ কিলিয়ান ফথ: দেখে মনে হচ্ছে।

উত্তর:


10

হ্যাঁ, আপনি সত্যিই তাদের সাজাইয়া দিতে পারেন। শুধু নিম্নলিখিত বিবেচনা করুন

PushbackReader pushbackBufferedReader = new PushbackReader(
     new BufferedReader(original));

এটি একটি মূল পাঠককে সাজাইয়া দেবে

  • প্রথম বাফার করা
  • এবং তারপরে পুশব্যাক / অপঠিত কার্যকারিতা সক্ষম করুন (তারপরেও ফলাফলটি বাফার হয় ..)

FilterReaderএবং Readerহায়ারার্কিতে বেস ক্লাস ...


এবং BufferedReader, FilterReaderএবং PushbackReaderসজ্জিত Reader, ঠিক আছে?

1
হ্যাঁ, এটা সঠিক।
duffymo

1
হ্যাঁ - বাফারড্রেডার অন্তর্নিহিত পাঠককে বার্ফার করে দেয়, পুশব্যাকার আপনাকে পাঠক ইত্যাদির ডেটা 'অপঠিত' করতে সক্ষম করে ...

11

প্রসাধক প্যাটার্ন এখানে প্রযোজ্য কারণ BufferedReaderগোপন একটি Reader- এটা এখনও একটি Reader(এটা সব পদ্ধতি রয়েছে Reader), কিন্তু এটা আরো "ঘন্টাধ্বনি এবং whistles" (আরো পদ্ধতি) আছে।

এখানে একটি উদাহরণ দেখানো হচ্ছে যে কীভাবে একটি শ্রেণি এটি আবৃত করে তার কার্যকারিতাটি "সজ্জিত" করে এবং আপনি সাজসজ্জা চালিয়ে যাওয়ার জন্য তাদের চেইন আপ করতে পারেন:

        new BufferedReader(new FileReader(new File("some.file")));
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.