এওপি ধারণাটি ডামির জন্য ব্যাখ্যা করা হয়েছে


19

কেউ ডমিগুলির জন্য এওপি ধারণাগুলি ব্যাখ্যা করতে পারেন: পয়েন্ট, পয়েন্ট কাট, বয়ন ইত্যাদি যোগ দিন join

উদাহরণস্বরূপ: দিক : এক উদ্বেগের একটি মডুলারাইজেশন যা একাধিক ক্লাস জুড়ে কাটে। ওটার মানে কি?

উত্তর:


15

কার্যকারিতা গ্রুপ হিসাবে উদ্বিগ্নতার কথা ভাবেন যেমন লগিং, নিরীক্ষণ, সুরক্ষা

এই কার্যকারিতাটি বেশিরভাগ কোডে উপস্থিত থাকে তবে তারা আমাদের প্রাণী-> কুকুরের ক্লাসে সত্যিই বাস করে না - এগুলি কার্যকারিতা যা অনেক শ্রেণিতে বাস করা উচিত - তারা ক্রস কাটা উদ্বেগগুলি

  • একটি জোয়েন্টপয়েন্ট হ'ল কোডের একটি জায়গা যেখানে অ্যাসপেক্ট কোডটি চালিত হয়।

  • একটি পয়েন্টকুটটি কীভাবে বলতে হয় যে কী কোডটি যৌথ পয়েন্টে চলে।

  • তাঁত - যখন সংকলক / সিস্টেমটি আপনার সাধারণ কোডটি নেয় এবং সমস্ত এওপি কোড অন্তর্ভুক্ত করে যাতে এটি সঠিক কোড ইত্যাদি ট্রিগার করে - এটি অতিরিক্ত প্রাক-সংকলন পদক্ষেপ হিসাবে ভাবতে পারে।

একটি সহজ বোধগম্য উদাহরণ হ'ল:

  1. আমরা ডিবাগিংয়ের উদ্দেশ্যে সমস্ত পদ্ধতি কলগুলি ট্র্যাক করতে চাই (যেমন আমরা দেখতে চাই যে কোন পদ্ধতিগুলি কোন ক্রমে কল হয়)।
  2. আমরা একটি দিক তৈরি করি যা কল হয়ে গেলে পদ্ধতির নাম লগ করে
  3. আমরা পয়েন্টকাটগুলি তৈরি করি যা কোডের সমস্ত পদ্ধতির সাথে দিকটি সংযুক্ত করে। বেশিরভাগ এওপি ফ্রেমওয়ার্কগুলিতে আপনি কিছু ওয়াইল্ড কার্ডের সাহায্যে এটি সহজেই করতে পারেন
  4. আমাদের কাছে এখন বলা প্রতিটি পদ্ধতির লগিং রয়েছে।

দয়া করে সচেতন হন যে পরিভাষা বিভিন্ন বাস্তবায়ন এবং এওপি ফ্রেমওয়ার্কগুলির মধ্যে কিছুটা পৃথক হয়।


আমি যেমন আমার দীর্ঘ উত্তর লিখছিলাম! আপনার আরও সংক্ষিপ্ত, আমি এটি পছন্দ করি। স্বচ্ছতার জন্য এটি সামান্য সম্পাদনা করবে।
মার্টিজ ভার্বার্গ

ধন্যবাদ, আমি ফর্ম্যাটিং বিধিগুলি শিখাই উচিত, ভুলে যেতে থাকি।
জোনো

মনে হচ্ছে পাইথন সাজসজ্জার বা লিসপ ম্যাক্রো- ওয়াই / এন দিয়ে এটি প্রয়োগ করা সহজ হবে?
পল নাথান

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

@ পলনাথন: গতিশীল ভাষায় এওপি বেশ সহজ। একটি সাধারণ এওপি ফ্রেমওয়ার্ক একটি বিকেলে তৈরি করা যেতে পারে। জাভা এর মতো সংকলিত ভাষায় জীবন এত মধুর নয়।
কেভিন cline

-1

ধারাবাহিকভাবে পড়ুন

প্রতিটি সংজ্ঞা পূর্ববর্তীগুলিতে তৈরি করে।

ক্রস কাটিয়া উদ্বেগ

আপনার অ্যাপ্লিকেশন জুড়ে সর্বত্র (ক্রস কাটিয়া) বিরক্তিকর কিছু। যেমন লগিং বা সুরক্ষা

দৃষ্টিভঙ্গি

কোডের একটি অংশ যা আপনার বিদ্যমান কোডের পূর্বে , পরে বা উভয় ( চারপাশে ) স্বয়ংক্রিয়ভাবে যুক্ত হয়

পয়েন্টকুট এবং জোয়েন্টপয়েন্ট

                  Application code
                           |
                           |
                           |
                           |
                          \|/
                           |
JoinPoint  ----------->("before" aspect, on the way in)  // just before your intercepted application code
Pointcut start--------> public String myMethod(params ...)
                   //your application code
Pointcut finish--------> return (foo)
JoinPoint  ----------->("after" aspect, on the way out)  // just after your intercepted application code
                           |
                          \|/
                           |
                           |
                           |
                  Application code

Pointcut

কোড প্রয়োগের একটি স্থান যেখানে দিকের অংশটি কার্যকর করে।

JoinPoint

আপনার দিকটি পয়েন্টকাটটিতে "যোগ দেয়" The একটি "পূর্বে" জয়য়েন্টপয়েন্টে আপনার প্যারামিটারগুলির অ্যাক্সেস থাকবে, জয়েন্টপয়েন্টে "পরে" আপনার ফিরতি মানটিতে অ্যাক্সেস থাকবে। যদি কোনও ব্যতিক্রম ছুঁড়ে ফেলা হয় তবে এটি হ্যান্ডেল করতে বা পুনরায় নিক্ষেপ করতে আপনার "ট্রাই-ক্যাচ-অবশেষে" দরকার হতে পারে।

বয়ন

পয়েন্টকটের চারপাশে দিকগুলি যুক্ত করার প্রক্রিয়া


যে আমার উত্তরটি ভোট দিয়েছে, দয়া করে কেন একটি মন্তব্য করুন - যদি আপনার আপত্তি না থাকে। আমি প্রতিজ্ঞা করছি যে আমি এটি নিয়ে কোনও তর্ক শুরু করব না। আমি তবে আরও ভাল কি করতে পারি তা জানতে চাই। ধন্যবাদ!
প্রশান্ত
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.