stanford-oval/wikipedia huggingface dataset:
هشام يانس

| هشام يانس>   | هشام يانس>   |
| --- | --- |
 معلومات شخصية :  معلومات شخصية 
الميلاد: 21 مايو 1946     يافا  
تاريخ الوفاة: 22 ديسمبر 2024 (78 سنة)      
مواطنة:  الأردن  
عضو في: رابطة الكتاب الأردنيين، ونقابة الفنانين الأردنيين  
 الحياة العملية  :  الحياة العملية  
المدرسة الأم: كلية الحقوق جامعة القاهرة الجامعة الأردنية (الشهادة:ماجستير في العلوم السياسية) (–2007)  
المهنة: كاتب، وممثل  
اللغات: العربية  
الجوائز : الجوائز 
 وسام الاستقلال الأردني    وسام الحسين للعطاء المميز    :  وسام الاستقلال الأردني    وسام الحسين للعطاء المميز    
المواقع : المواقع 
السينما.كوم: صفحته على السينما.كوم  
تعديل مصدري - تعديل  : تعديل مصدري - تعديل  
هشام يانس (21 مايو 1946 - 22 ديسمبر 2024)، هو ممثل وكاتب أردني، ولد في يافا بفلسطين.
حياته

تخرج من كلية الحقوق في مصر، وأنهى دراسة الماجستير في العلوم السياسية عام 2007 من الجامعة الأردنية وقدم بحثا بعنوان « تقييم معاهدة السلام الأردنية الإسرائيلية».
اشتهر وكان لا يزال على مقاعد الدراسة بتقليد الشخصيات العامة وخاصة الفنانيين ورؤساء الدول فقد قلد الملك الحسين، ياسر عرفات، صدام حسين، معمر القذافي، جمال عبد الناصر، محمد أنور السادات، الحبيب بورقيبة، محمد متولي الشعراوي، وغيرهم. وشارك في العديد المسرحيات على خشبة مسرح الاوبرا ومنها: «الرجل القذر» للكاتب الإيرلندي برنارد شو، و «كلهم أولادي» للامريكي آرثر ميلر.
عمل في التأليف الدرامي والتمثيل الاذاعي والمسرحي، وعيّن مخرجاً ومنتجاً في الإذاعة الأردنية، انتقل للعمل في هيئة الإذاعة البريطانية وقدم نصوصا تمثيلية عُرفت باسم (الرجل الطيب). كتب ما لا يقل عن 82 مسلسلا تلفزيونيا و15 مسرحية سياسية، أشهرها «نظام عالمي جديد» بالإشتراك مع أمل الدباس ونبيل صوالحه، ومسرحيات : «مؤتمر قمة عرب»»، «السلام يا سلام»، «التطبيع»، «أهلا حكومة»، «الحصار اللي صار»، «الصدمة»، «صدام»، و«أكوي».
أسس أول مسرح مدرسي في أبو ظبي بدأه بمسرحية (احمد بن ماجد) كما عمل في كل من امارة ابوظبي ودولة قطر كمراجع للنصوص التلفزيونية ومشرف على المسارح المدرسية هناك. عاد لاحقا واستقر في عمان وتفرغ لمهنة الكتابة، وكتب العشرات من المسلسلات الاذاعية والتلفزيونية من اهمها : تل الفخار، النشامي يا بحر، الكنز، الظاهر بيبرس، وغيرها.
في الثمانينات قدم المسلسل التعليمي (المناهل) الذي حقق شهرة عربية واسعة، انتسب إلى رابطة الكتاب الأردنيين ونقابة الفنانين ولكن عضويته علقت فيها لأسباب سياسية. قدم عددًا من الأغاني لبعض المطربين الأردنيين والعرب مثل: أم كلثوم، محمد عبدالوهاب، فريد الأطرش، صباح، سميرة توفيق، محرم فؤاد، سلوى، توفيق النمري، إسماعيل خضر، وديع الصافي، شادية، ناظم الغزالي، صباح فخري، محمد عبده، وغيرهم.
في عام 2007 تعرض لجلطة دماغية أقعدته الفراش.
الجدل

في حوار سابق معه لم ينفي زيارته لإسرائيل فيقول «زرت فلسطين، وهي وطني، فقد عشت في مخيم فلسطيني وترسخت في ذاكرتي آلام أمتي، أما ما تردد عن زيارتي لقبر إسحاق رابين فقد كان تضخيما من قبل الصحافة ومنافيا للوقائع الحقيقية». مما دعا لجنة مقاومة التطبيع النقابية لرفض منحه وسامًا وعللت ذلك قائلة: «ونظرا لتاريخ  الفنان المذكور في التطبيع مع الكيان الصهيوني ، وبغض النظر عن مدى  ابداعه الفني، اضافة إلى انه سبق وقد منح وساما تقديريا ، في حين ان فنانين اخرين مماثلين في المستوى ما زالوا ينتظرون تقديرا».
جوائز

وسام الاستقلال من الدرجة الأولى.
وسام الحسين للعطاء المتميز من الدرجة الثانية من الملك عبد الله الثاني.
وفاته

توفي يوم الأحد 22 ديسمبر 2024 عن ثمانيةٍ وسبعين عاماً بعد صراع طويل مع المرض.
الجمهوريانية في كندا

مظاهرة في ساحة بارليامنت هيل قام بها أعضاء من مواطنين من أجل جمهورية كندية أثناء حفل تنصيب الحاكم العام لكندا ميكائيل جان، 2005
الجمهوريانية الكندية هي حركة بين الكنديين لاستبدال النظام الكندي للملكية الدستورية الفدرالية مع شكل جمهوري للحكم. ويتم التعبير عن هذه المعتقدات إما بشكل فردي – عادة في الأوساط الأكاديمية – أو عن طريق جماعة الضغط الجمهوريانية في البلد. لا يوجد للجمهوريون نموذج مفضل للجمهورية، لأن الأفراد تحركهم عوامل مختلفة، مثل إمكانية أن توضع السلطة الشعبية في يد رئيس منتخب أو في مظهر مختلف للأمة الحديثة. وكما هو الحال مع نظيرها السياسي، فإن الجمهوريانية القوية ليست عنصرا سائدا في المجتمع الكندي المعاصر. وتعود جذور هذه الحركة إلى الاتحاد الكندي وظهرت من وقت لآخر في السياسة الكندية، ولكنها لم تكن قوة مهيمنة منذ حركات التمرد التي شهدها عام 1837، والتي يعتبر الجمهوريون الكنديون جهودهم استمرارًا لها.
الأنشطة

بما أن إلغاء النظام الملكي يتطلب إجراء تعديل دستوري لا يتم إلا بعد التوصل إلى الموافقة بالإجماع فيما بين البرلمان الاتحادي وجميع المجالس التشريعية الإقليمية العشر، يواجه الجمهوريون صعوبة في بلوغ هدفهم. وعلى الرغم من أن الجمهوريين قد أشاروا إلى أيرلندا والهند كنماذج يمكن تكييفها مع كندا، لم يتقرر شكل معين من أشكال الجمهورية أو طريقة اختيار للرئيس، ولا يزال السكان الكنديين غير مبالين إلى حد كبير بهذه المسألة.
وحتى الآن، اتخذت معظم الإجراءات الجمهورية شكل احتجاجات في يوم فيكتوريا – عيد ميلاد رسمي للعاهل الكندي – في تورونتو، والضغط على الحكومة الاتحادية وحكومات المقاطعات للقضاء على الرموز الملكية الكندية، واتخاذ إجراء قانوني ضد التاج، وبالتحديد فيما يتعلق بيمين المواطنة وقانون التسوية 1701.
الوصلات الخارجية

الموقع الشبكي لمواطنون من أجل جمهورية كندية
بوابة السياسة
بوابة كندا
بوابة ملكية
آريفوريتا: من مكان عمل شائع إلى الأقوى في العالم

| 0 | 1 |
| --- | --- |
آريفوريتا: من مكان عمل شائع إلى الأقوى في العالم: آريفوريتا: من مكان عمل شائع إلى الأقوى في العالم
لا إطارغلاف مجلد الرواية الخفيفة الأول: لا إطارغلاف مجلد الرواية الخفيفة الأول
ありふれた職業で世界最強 (Arifureta Shokugyō de Sekai Saikyō): ありふれた職業で世界最強 (Arifureta Shokugyō de Sekai Saikyō)
صنف: فنتازيا، حريم عالم مختلف
رواية مسلسلة: رواية مسلسلة
كاتب: ريو شيراكومي
ناشر: شوسيتسوكا ني نارو (النشر الذاتي)
تاريخ الإصدار: 7 نوفمبر 2013 – حتَّى الآن
رواية خفيفة: رواية خفيفة
كاتب: ريو شيراكومي
رسام: تاكاياكي
ناشر: Overlap
ديموغرافيا: رجولية
طابع: Overlap Bunko
تاريخ الإصدار: 25 يونيو 2015 – 25 سبتمبر 2022
مجلدات: 10
مانغا: مانغا
كاتب: RoGa
ناشر: Overlap
مجلة: Comic Gardo
تاريخ الإصدار: 6 فبراير 2016 – حتَّى الآن
مجلدات: 5
مانغا: مانغا
Arifureta: I Love Isekai: Arifureta: I Love Isekai
كاتب: ميساكي موري
ناشر: Overlap
ديموغرافيا: شونن
مجلة: Comic Gardo
تاريخ الإصدار: 11 يوليو 2017 – 6 يناير 2023
مجلدات: 5
رواية خفيفة: رواية خفيفة
Arifureta: From Commonplace to World's Strongest Zero: Arifureta: From Commonplace to World's Strongest Zero
كاتب: ريو شيراكومي
رسام: تاكاياكي
ناشر: Overlap
ديموغرافيا: رجولية
طابع: Overlap Bunko
تاريخ الإصدار: 28 ديسمبر 2017 – 25 ديسمبر 2021
مجلدات: 6
مانغا: مانغا
Arifureta: From Commonplace to World's Strongest Zero: Arifureta: From Commonplace to World's Strongest Zero
كاتب: أتسورو كاميتشي
ناشر: Overlap
ديموغرافيا: شونن
مجلة: Comic Gardo
تاريخ الإصدار: 8 يونيو 2022 – 23 فبراير 2018
أنمي تلفزيوني: أنمي تلفزيوني
مخرج: كينجي يوشيموتو
كاتب: شويتشي ساتو كينجي يوشيموتو
ملحن: ريو تاكاهاشي
إستديو: أسرياد وايت فوكس (الجزء 1) استوديو مذر (الجزء 2)
بث: آي تي-إكس، طوكيو إم إكس، تلفزيون سون، بي إس 11
عرض:  8 يوليو 2019  – 7 أكتوبر 2019
عدد الحلقات: 25 + 4 أوفا
تعديل مصدري - تعديل  : تعديل مصدري - تعديل  
آريفوريتا: من مكان عمل شائع إلى الأقوى في العالم (باليابانية: ありふれた職業で世界最強، بالروماجي: Arifureta Shokugyō de Sekai Saikyō) (بالإنجليزية: Arifureta: From Commonplace to World's Strongest)‏ هي سلسلة رواية خفيفة من تأليف ريو شيراكومي ورسم تاكاياكي، نشرت في الأصل على شكل رواية ويب في 7 نوفمبر عام 2013، ونشرت على شكل رواية خفيفة مطبوعة منذ 25 يونيو عام 2015. أنتجت إلى أنمي تلفزيوني من قبل استوديو وايت فوكس بالتعاون مع أسرياد، عرض الأنمي منذ 8 يوليو عام 2019 واستمر عرضه حتى 7 أكتوبر 2019، وتكون من 25 حلقة + 4 أوفا.
القصة

تدور أحداث القصة عن هاجيمي ناغومو، هو طالب المدرسة الثانوية، يتم نقله هو وبقية فصله إلى عالم خيالي، يحصل جميع زملائه على قدرات سحرية قوية، بينما يكتسب هاجيمي فقط السحر الكيميائي الأساسي لنقل المواد الصلبة، وهي قدرة شائعة توجد عادةً في الحرفيين والحدادين.
الشخصيات

هاجيمي ناغومو (باليابانية: 南雲 ハジメ، بالروماجي: Nagumo Hajime)
مؤدي الصوت: توشيناري فوكاماتشي
يوي (باليابانية: ユエ، بالروماجي: Yue)
مؤدية الصوت: يوكي كواهارا
شيا هاوريا (باليابانية: シア・ハウリア، بالروماجي: Shia Hauria)
مؤدية الصوت: مينامي تاكاهاشي
تيو كراروسو (باليابانية: ティオ・クラルス، بالروماجي: kurarusu Tio)
مؤدية الصوت: يوكو هيكاسا
كاوري شيراسوكي (باليابانية: 白崎 香織، بالروماجي: Shirasaki Kaori)
مؤدية الصوت: ساوري أونيشي
شيزوكو يايغاشي (باليابانية: 八重樫 雫، بالروماجي: Yaegashi Shizuku)
مؤدية الصوت: يوميري هاناموري
كوكي أمانوغاوا (باليابانية: 天之河 光輝، بالروماجي: Amanogawa Kōki)
مؤدي الصوت: تتسيا كاكيهارا
آيكو هاتاياما (باليابانية: 畑山 愛子، بالروماجي: Hatayama Aiko)
مؤدية الصوت: أي كاكوما
دايسوكي هياما (باليابانية: 檜山 大介، بالروماجي: Hiyama Daisuke)
مؤدي الصوت: مينورو شيرايشي
ميو (باليابانية: ミュウ، بالروماجي: Myū)
مؤدية الصوت: يوي أوغورا
مراجع

↑  "Arifureta: From Commonplace to World's Strongest". سفن سيز انترتينمنت. مؤرشف من الأصل في 2019-06-26. اطلع عليه بتاريخ 2017-12-02.
↑  Sherman، Jennifer (3 يونيو 2019). "Arifureta - From Commonplace to World's Strongest Anime Reveals TV Ad, Visual, July 8 Premiere". شبكة أخبار الأنمي. مؤرشف من الأصل في 2019-09-21. اطلع عليه بتاريخ 2019-06-03.
↑  Pineda، Rafael Antonio (20 ديسمبر 2018). "Arifureta: From Commonplace to World's Strongest TV Anime Unveils New Visual, July 2019 Premiere". شبكة أخبار الأنمي. مؤرشف من الأصل في 2020-05-13. اطلع عليه بتاريخ 2018-12-20.
1 2 3  Loo، Egan (2 ديسمبر 2017). "Arifureta: From Commonplace to World's Strongest Alternate-World Light Novels Get TV Anime". شبكة أخبار الأنمي. مؤرشف من الأصل في 2019-07-01. اطلع عليه بتاريخ 2017-12-02.
1 2 3 4 5  Pineda، Rafael Antonio (23 مارس 2019). "Arifureta - From Commonplace to World's Strongest Anime's Video Reveals More Cast, Staff". شبكة أخبار الأنمي. مؤرشف من الأصل في 2020-05-02. اطلع عليه بتاريخ 2019-03-23.
↑  "ドラマCD第2弾に出演する白崎香織役のキャスト公開!!" [Cast announced for Kaori Shirasaki, who appears in the second volume of the Drama CD]. Arifureta.com (باليابانية). 10 Feb 2018. Archived from the original on 2019-05-21. Retrieved 2018-03-27.
↑  "小倉 唯 公式サイト -Yui Ogura OFFICIAL WEB SITE-". 小倉 唯 公式サイト -Yui Ogura OFFICIAL WEB SITE- (باليابانية). Archived from the original on 2019-09-24. Retrieved 2019-09-24.
وصلات خارجية

آريفوريتا: من مكان عمل شائع إلى الأقوى في العالم على موقع ANN manga (الإنجليزية)
موقع الرواية الرسمي على شوسيتسوكا ني نارو باللغة اليابانية
الموقع الرسمي باللغة اليابانية
موقع المانغا الرسمي باللغة اليابانية
بوابة أدب
بوابة أنمي ومانغا
بوابة اليابان
بوابة خيال علمي
يوهان عليوات

| يوهان عليوات | يوهان عليوات |
| --- | --- |
 :  
 معلومات شخصية :  معلومات شخصية 
الميلاد: 22 يناير 1993   (31 سنة)   فرنسا  
مواطنة:  الجزائر  
 الحياة العملية  :  الحياة العملية  
المهنة: لاعب اتحاد الرغبي  
اللغات: الفرنسية  
الرياضة: اتحاد الرغبي  
تعديل مصدري - تعديل  : تعديل مصدري - تعديل  
يوهان عليوات من مواليد 22 يناير 1993 بإيستر، هو لاعب اتحاد الرغبي جزائري دولي يلعب كلاعب صف ثاني لفريق بياريتز أوليم.
بطل فرنسا المأمول في عام 2013 مع مونبلييه هيرولت للرجبي.
مراجع

1 2  . النادي الأوروبي لمحترفي الرجبي. {{استشهاد ويب}}: الوسيط |title= غير موجود أو فارغ (من ويكي بيانات) (مساعدة) والوسيط |مسار= غير موجود أو فارع (مساعدة)
في كومنز مواد ذات صلة بـ يوهان عليوات.
بوابة الجزائر
بوابة فرنسا
نمط المحول

في هندسة البرمجيات، نمط المحوّل (بالإنجليزية: adapter pattern)‏ هو نمط تصميم برمجيات (يُعرف أيضًا باسم المغلّف؛ تسمية بديلة مشتركة مع نمط الديكور) يسمح لواجهة صنف موجود مسبقاً ليُستخدم كواجهة أخرى. غالبًا ما يتم استخدامه لجعل الأصناف الموجودة تعمل مع الآخرين دون تعديل الكود المصدري الخاص بهم.
مثال على ذلك هو المحوّل الذي يحوّل واجهة نموذج كائن المستند من مستند XML إلى بنية شجرة يمكن عرضها.
نظرة عامة

يعد نمط تصميم المحوّل أحد أنماط تصميم GoF الثلاثة والعشرون المعروفة التي تصف كيفية حل مشاكل التصميم المتكررة لتصميم برنامج مرن وقابل لإعادة الاستخدام، أي ذو توجيه كائني الذي يسهل تنفيذه، تغييره، اختباره وإعادة استخدامه.
يحل نمط تصميم المحوّل مشاكل مثل:
كيف يمكن إعادة استخدام صنف (بالإنجليزية: class)‏ لا يحتوي على واجهة يطلبها العميل؟
كيف يمكن للأصناف التي تحتوي على واجهات غير متوافقة أن تعمل معًا؟
كيف يمكن تُوفّر واجهة بديلة لصنف؟
غالبًا لا يمكن إعادة استخدام صنف (موجود بالفعل) فقط لأن واجهته لا تتوافق مع الواجهة التي يطلبها العملاء.
يصف نمط تصميم المحوّل كيفية حل مثل هذه المشاكل:
عرّف صنف محوّل منفصل (بالإنجليزية: adapter)‏ يحول الواجهة (غير المتوافقة) للصنف المحَوَل (بالإنجليزية: adaptee)‏ إلى واجهة أخرى تُعتبر الهدف (بالإنجليزية: target)‏ والتي يطلبها العملاء.
اعمل من خلال محوّل (بالإنجليزية: adapter)‏ للعمل مع (إعادة استخدام) أصناف ليس لها الواجهة المطلوبة.
الفكرة الرئيسية في هذا النمط هي العمل من خلال المحوّل المنفصل (بالإنجليزية: adapter)‏، الذي يقوم بتكييف (تحويل) واجهة صنف (موجودة مسبقاً) دون تغييرها.
لا يعرف العملاء إذا ما كانوا يعملون مع الصنف الهدف مباشرة (بالإنجليزية: target)‏ أم من خلال محوّل (بالإنجليزية: adapter)‏ مع صنف لا يحتوي على الواجهة الهدف (بالإنجليزية: target)‏.
انظر أيضًا الرسم التخطيطي للصنف بلفة النمذجة الموحدة أدناه.
تعريف

يسمح المحوّل لواجهتين غير متوافقتين بالعمل معًا. هذا هو التعريف الحقيقي للمحوّل. قد تكون الواجهات غير متوافقة، ولكن الوظيفة الداخلية يجب أن تلبي الحاجة. يسمح نمط تصميم المحوّل للأصناف غير المتوافقة بالعمل معًا من خلال تحويل واجهة إحدى الأصناف إلى واجهة يتوقعها العملاء.
استخدام

يمكن استخدام المحوّل عندما يتوجب على المُغلّف الالتزام بواجهة معينة ويجب أن يدعم سلوك متعدد الأشكال. بدلاً من ذلك، منفذ نمط الديكور يمكّن من إضافة أو تغيير سلوك واجهة في وقت التشغيل، ويتم استخدام واجهة البناء عند الرغبة في واجهة أسهل أو أبسط لكائن أساسي.
| نمط | نوايا |
| --- | --- |
محوّل أو مُغلّف: يحول واجهة إلى أخرى بحيث تتطابق مع ما يتوقعه العميل.
منفذ الديكور: يضيف المسؤولية إلى الواجهة ديناميكيًا من خلال تغليف الكود الأصلي.
تفويض: دعم "التركيب على الميراث".
واجهة البناء: يوفر واجهة بينية مبسطة.
هيكل > مخطط الصنف بلغة النمذجة الموحدة

في مخطط الصنف بلغة النمذجة الموحدة أعلاه، لا يمكن لصنف العميل (بالإنجليزية: client)‏ الذي يتطلب الواجهة الهدف (بالإنجليزية: target)‏ إعادة استخدام صنف المحَوَل (بالإنجليزية: adaptee )‏ مباشرة لأن المحوَل (بالإنجليزية: adaptee)‏ لا يتوافق مع الواجهة الهدف (بالإنجليزية: target)‏ . بدلاً من ذلك، يقوم العميل (بالإنجليزية: client)‏ خلال صنف المحوّل (بالإنجليزية: adapter)‏ بتنفيذ الواجهة الهدف (بالإنجليزية: target)‏ من حيث المحوَل (بالإنجليزية: adaptee)‏ :
أسلوب مُحوّل الكائن (بالإنجليزية: object adapter)‏ ينفذ الواجهة الهدف (بالإنجليزية: target)‏ عن طريق التفويض إلى كائن محَوَل (بالإنجليزية: adaptee)‏ في وقت التشغيل (بالإنجليزية: ()adaptee.specificOperation)‏ (الكود: محَوَل.عملية محددة).
أسلوب مُحوّل الصنف (بالإنجليزية: class adapter)‏ ينفذ الواجهة الهدف (بالإنجليزية: target)‏ من خلال الوراثة من صنف المحَوَل (بالإنجليزية: adaptee)‏ في وقت التجميع (بالإنجليزية: ()specificOperation)‏ (الكود: عملية محددة).
هيكل > نمط محوّل الكائن

نمط محوّل الكائن (بالإنجليزية: Object adapter pattern)‏ في نمط المحوّل هذا، يحتوي المحوّل على مثيل من الصنف الذي يغلّفه. في هذه الحالة، يقوم المحوّل بإجراء استدعاءات إلى مثيل الكائن المُغلّف.
هيكل > نمط محوّل الصنف

نمط محوّل الصنف (بالإنجليزية: Class adapter pattern)‏ يستخدم نمط المحوّل هذا عدة واجهات متعددة الأشكال تقوم بتنفيذ أو توريث كل من الواجهة المتوقعة والواجهة الموجودة مسبقًا. من المعتاد أن تكون الواجهة المتوقعة مُنشئة كصنف واجهة خالصة (صافية)، خاصة في لغات مثل جافا (قبل JDK 1.8) التي لا تدعم توارث الأصناف المتعدد.
هيكل > شكل آخر من أنماط محوّل وقت التشغيل > الدافع من الحل وقت التجميع

يجب أن يدعم صنف ClassA
 صنف classB
 مع بعض البيانات، لنفترض وجود بعض البيانات من سلاسل النصString
. الحل وقت التجميع هو التالي:
classB.setStringData(classA.getStringData());
ومع ذلك، افترض أنه يجب تغيير تنسيق بيانات السلاسل النصية في String
. الحل وقت التجميع هو استخدام الوراثة:
public class Format1ClassA extends ClassA {
  @Override
  public String getStringData() {
    return format(toString());
  } 
}
وربما إنشاء كائن «التنسيق» بشكل صحيح في وقت التشغيل عن طريق نمط المصنع.
هيكل > شكل آخر من أنماط محوّل وقت التشغيل > حل محوّل وقت التشغيل

باستخدام «المحوّلات» نحصل على الحل كما يلي:
1. عرّف واجهة «مزود» وسيط، واكتبْ تنفيذ لواجهة المزود تلك التي تغلف مصدر البيانات، ClassA
 في هذا المثال، وتخرج البيانات المنسقة حسب الضرورة:
public interface StringProvider {
  public String getStringData();
}

public class ClassAFormat1 implements StringProvider {
  private ClassA classA = null;

  public ClassAFormat1(final ClassA a) {
    classA = a;
  }

  public String getStringData() {
    return format(classA.getStringData());
  }

  private String format(final String sourceValue) {
//تلاعب وتحكم بالسلسة النصية في التنسيق المطلوب عن طريق الكائن الذي يحتاج لكائن البيانات
    // Manipulate the source string into a format required 
    // by the object needing the source object's data
    return sourceValue.trim();
  }
}
2. اكتبْ صنف محوّل الذي يرجع التنفيذ المحدد للمزود:
public class ClassAFormat1Adapter extends Adapter {
  public Object adapt(final Object anObject) {
    return new ClassAFormat1((ClassA) anObject);
  }
}
3. سجّلْ المحوّل adapter
 في سجل عالمي، بحيث يمكن البحث عن المحوّل adapter
 في وقت التشغيل:
AdapterFactory.getInstance().registerAdapter(ClassA.class, ClassAFormat1Adapter.class, "تنسيق1");
4. في الكود، عند الرغبة في نقل البيانات من صنف ClassA
 إلى صنف classB
، اكتبْ:
Adapter adapter =
  AdapterFactory.getInstance()
    .getAdapterFromTo(ClassA.class, StringProvider.class, "تنسيق1");
StringProvider provider = (StringProvider) adapter.adapt(classA);
String string = provider.getStringData();
classB.setStringData(string);
أو بشكل أكثر إيجازًا:
classB.setStringData(
  ((StringProvider)
      AdapterFactory.getInstance()
        .getAdapterFromTo(ClassA.class, StringProvider.class, "تنسيق1")
        .adapt(classA))
    .getStringData());
5. يمكن ملاحظة الفائدة من ذلك، إذا كان من المطلوب نقل البيانات بتنسيق ثاني، فابحثْ عن المحوّل/ المزود المختلف:
Adapter adapter =
  AdapterFactory.getInstance()
    .getAdapterFromTo(ClassA.class, StringProvider.class, "تنسيق2");
6. وإذا كان من المطلوب إخراج البيانات من صنف ClassA
، على سبيل المثال؛ بيانات لصورة في ClassC
:
Adapter adapter =
  AdapterFactory.getInstance()
    .getAdapterFromTo(ClassA.class, ImageProvider.class, "تنسيق2");
ImageProvider provider = (ImageProvider) adapter.adapt(classA);
classC.setImage(provider.getImage());
7. بهذه الطريقة، استخدام المحوّلات والمزودين يسمح بتعدد «الرؤية» من قبل صنفا ClassB
 و ClassC
 في صنف ClassA
 دون الحاجة إلى تغيير التسلسل الهرمي للأصناف. بشكل عام، ما سبق يسمح بآلية لتدفق البيانات الغير محددة بين الكائنات التي يمكن تعديلها إلى التسلسل الهرمي للكائن الموجود.
هيكل > تنفيذ نمط المحوّل

عند تنفيذ نمط المحوّل، للتوضيح، يمكن للمرء تطبيق اسم الصنف من صنف إلى واجهة محوّل كالتالي [ClassName]To[Interface]Adapter
 للتنفيذ الخاص بالمزود، على سبيل المثال DAOToProviderAdapter
. يجب أن يكون لديه طريقة المنشئ مع متغير خاص بصنف المحَوَل كمعلمة. سيتم تمرير هذه المعلمة إلى مثيل عضو instance member of
 من (اسم-الصنف) إلى (اسم-الواجهة) للمحوّل كالتالي [ClassName]To[Interface]Adapter
. عندما يتم استدعاء طريقة العميل، سيتمكن من الوصول إلى مثيل المحوَل الذي يسمح بالوصول إلى البيانات المطلوبة للمحوَل وتنفيذ العمليات على تلك البيانات التي تولد المخرجات المطلوبة.
هيكل > تنفيذ نمط المحوّل > كريستال

abstract class FormatIphone
 getter connector

 abstract def recharge
 abstract def use_lightning
end

abstract class FormatAndroid
 getter connector

 abstract def recharge
 abstract def use_micro_usb
end

class Iphone < FormatIphone
 def initialize
  @connector = false
 end

 def use_lightning
  @connector = true
  puts "Lightning connected"
 end

 def recharge
  if @connector
   puts "Recharge started"
   puts "Recharge finished"
  else
   puts "Connect Lightning first"
  Close
 end
end

class Android < FormatAndroid
 def initialize
  @connector = false
 end

 def use_micro_usb
  @connector = true
  puts "MicroUsb connected"
 end

 def recharge
  if @connector
   puts "Recharge started"
   puts "Recharge finished"
  else
   puts "Connect MicroUsb first"
  end
 end
end

class IphoneAdapter < FormatAndroid
 private getter mobile : FormatIphone

 def initialize(@mobile)
 end

 def recharge
  @mobile.recharge
 end

 def use_micro_usb
  puts "MicroUsb connected"
  @mobile.use_lightning
 end
end

class AndroidRecharger
 def initialize
  phone = Android.new
  phone.use_micro_usb
  phone.recharge
 end
end

class IphoneMicroUsbRecharger
 def initialize
  phone = Iphone.new
  phone_adapter = IphoneAdapter.new(phone)
  phone_adapter.use_micro_usb
  phone_adapter.recharge
 end
end

class IphoneRecharger
 def initialize
  phone = Iphone.new
  phone.use_lightning
  phone.recharge
 end
end

puts "Recharging android with MicroUsb Recharger"
AndroidRecharger.new
puts

puts "Recharging iPhone with MicroUsb using Adapter pattern"
IphoneMicroUsbRecharger.new
puts

puts "Recharging iPhone with iPhone Recharger"
IphoneRecharger.new
المخرجات:
Recharging android with MicroUsb Recharger
MicroUsb connected
Recharge started
Recharge finished
Recharging iPhone with MicroUsb using Adapter pattern
MicroUsb connected
Lightning connected
Recharge started
Recharge finished
Recharging iPhone with iPhone Recharger
Lightning connected
Recharge started
Recharge finished
هيكل > تنفيذ نمط المحوّل > جافا

interface LightningPhone {
  void recharge();
  void useLightning();
}

interface MicroUsbPhone {
  void recharge();
  void useMicroUsb();
}

class Iphone implements LightningPhone {
  private boolean connector;

  @Override
  public void useLightning() {
    connector = true;
    System.out.println("Lightning connected");
  }

  @Override
  public void recharge() {
    if (connector) {
      System.out.println("Recharge started");
      System.out.println("Recharge finished");
    } else {
      System.out.println("Connect Lightning first");
    }
  }
}

class Android implements MicroUsbPhone {
  private boolean connector;

  @Override
  public void useMicroUsb() {
    connector = true;
    System.out.println("MicroUsb connected");
  }

  @Override
  public void recharge() {
    if (connector) {
      System.out.println("Recharge started");
      System.out.println("Recharge finished");
    } else {
      System.out.println("Connect MicroUsb first");
    }
  }
}
/* exposing the target interface while wrapping source object */
class LightningToMicroUsbAdapter implements MicroUsbPhone {
  private final LightningPhone lightningPhone;

  public LightningToMicroUsbAdapter (LightningPhone lightningPhone) {
    this.lightningPhone = lightningPhone;
  }

  @Override
  public void useMicroUsb() {
    System.out.println("MicroUsb connected");
    lightningPhone.useLightning();
  }

  @Override
  public void recharge() {
    lightningPhone.recharge();
  }
}

public class AdapterDemo {
  static void rechargeMicroUsbPhone(MicroUsbPhone phone) {
    phone.useMicroUsb();
    phone.recharge();
  }

  static void rechargeLightningPhone(LightningPhone phone) {
    phone.useLightning();
    phone.recharge();
  }

  public static void main(String[] args) {
    Android android = new Android();
    Iphone iPhone = new Iphone();

    System.out.println("Recharging android with MicroUsb");
    rechargeMicroUsbPhone(android);

    System.out.println("Recharging iPhone with Lightning");
    rechargeLightningPhone(iPhone);

    System.out.println("Recharging iPhone with MicroUsb");
    rechargeMicroUsbPhone(new LightningToMicroUsbAdapter (iPhone));
  }
}
مخرجات:
Recharging android with MicroUsb
MicroUsb connected
Recharge started
Recharge finished
Recharging iPhone with Lightning
Lightning connected
Recharge started
Recharge finished
Recharging iPhone with MicroUsb
MicroUsb connected
Lightning connected
Recharge started
Recharge finished