1. المفاهيم الأساسية
SideJ هو تطبيق قائم على Java لبرمجة الجوانب. يضيف مفهوم النقطة الجديدة إلى Java ، ولكن في الواقع هو مجرد اسم مفهوم Java الحالي. ويضيف بعض الهياكل الجديدة إلى لغة جافا: نقطة ، إخطار (نصيحة) ، إعلان بين النوع (إعلان بين النوع) والجانب (الجانب). الإمالة والإشعارات تؤثر ديناميكيا على تدفق البرنامج ، والتعرضات بين النوع هي هياكل هرمية من الطبقة الثابتة للبرنامج ، وتكون الظلال ملغمة لجميع هذه الهياكل الجديدة.
المفاهيم القائمة على الأقسام ونقاط الاتصال ونقاط الظل والإخطارات هي كما يلي:
الجانب: يتشابه إعلان الجوانب مع إعلان الطبقة في Java ، ويحتوي على بعض النقاط والنصائح المقابلة في الجانب.
النقطة المشتركة: تمثل نقطة محددة بوضوح في البرنامج.
PointCut: يمثل مجموعة من النقاط المشتركة.
النصيحة: تحدد النصيحة العمليات المحددة التي يتعين القيام بها من قبل نقطة البرنامج المحددة في PointCut.
نقطة الاتصال هي نقطة مناسبة في تدفق البرنامج. يجمع الظل مجموعة محددة من نقاط الاتصال والقيم في هذه النقاط. الإخطار هو الرمز الذي تم تنفيذه عند وصول نقطة اتصال ، وهذه أجزاء ديناميكية من SideJJ. في الواقع ، تشبه نقطة الاتصال في البرنامج ، ونقطة الظل هي نقطة توقف في بيان محدد. نقطة الانقطاع هذا. هناك أيضًا العديد من الأنواع المختلفة من الإعلانات بين النوعين في SideJ ، والتي تسمح للمبرمجين بتعديل الهيكل الثابت والاسم وأعضاء الفصل والعلاقات بين الفصول. الجانب في SideJj هو وحدة الوحدة التي تتقاطع مع التركيز. يشبه سلوكهم الفصول في Java ، ولكنه يلف أيضًا قطع النقاط والإخطارات والإعلانات بين النوع.
2. كيفية تطوير برامج AOP بناءً على AJDT: SideJ Development Tools؟
اتبع الإرشادات الموجودة على موقع AJDT لتثبيت المكون الإضافي AJDT في Eclipse http://www.eclipse.org/ajdt/
قم بإنشاء مشروع مشروع SideSJ
سلوك تطوير رمز (تقدم هذه المقالة مثالًا بسيطًا)
3. مثال بسيط:
نسخة الكود كما يلي:
حزمة aop.test ؛
الواجهة العامة الشكل {
public void setxy (int x ، int y) ؛
السحب الفراغ العام () ؛
}
نسخة الكود كما يلي:
حزمة aop.test ؛
نقطة الطبقة العامة تنفذ الشكل {
العام int x ؛
الخاص int y ؛
العام int getx () {
إرجاع x ؛
}
السلسلة العامة setx (int x) {
System.out.println ("SET x value: x ="+x) ؛
this.x = x ؛
إرجاع "قيمة الإرجاع هي x ="+x ؛
}
الجمهور int gety () {
إرجاع y ؛
}
public void sety (int y) {
this.y = y ؛
}
نقطة عامة () {
}
النقطة العامة (int x ، int y) {
this.x = x ؛
this.y = y ؛
}
@تجاوز
public void setxy (int x ، int y) {
this.x = x ؛
this.y = y ؛
System.out.println ("point setxy: x ="+x+"، y ="+y) ؛
}
@تجاوز
رسم باطل عام () {
System.out.println ("Point Draw") ؛
}
@تجاوز
السلسلة العامة tostring () {
إرجاع "النقطة: x ="+x+"، y ="+y ؛
}
}