- MVC چیست ؟
- DAO و DTO چیست ؟
- POJO چیست ؟
- Entity چیست ؟
- چه مجموعه های لیستی را می شناسید؟
- چه مجموعه ها و مجموعه هایی را می شناسید؟
- نقشه چیست ، چه تفاوتی با " فرهنگ لغت " دارد ؟
- Queue و Dequeue چیست ؟
- چه کلاس هایی را می شناسید که رابط Queeue را پیاده سازی می کنند؟
- درخت چیست ؟
-
MVC یک الگوی طراحی اپلیکیشن است که در آن اپلیکیشن به سه قسمت مجزا تقسیم می شود: مدل، نما و کنترلر. مدل داده ها را فراهم می کند و با تغییر حالت به دستورات کنترل کننده پاسخ می دهد. View وظیفه نمایش داده های مدل به کاربر، پاسخگویی به تغییرات مدل را بر عهده دارد. و کنترل کننده اقدامات کاربر را تفسیر می کند و مدل را در مورد نیاز به تغییرات آگاه می کند. بنابراین، هر یک از اجزای این مدار به طور سست با اجزای دیگر جفت می شود و در نتیجه به انعطاف پذیری برنامه دست می یابد. اغلب، تمام منطق کسب و کار در مدل موجود است، اگرچه گاهی اوقات در کنترل کننده نیز وجود دارد. در مورد اول، مدل نازک نامیده می شود، در دومی - ضخیم.
-
DAO (Data Access Object) یک شی است که وظیفه اصلی آن ذخیره داده ها در پایگاه داده و همچنین بازیابی آنها از آن است. DTO (Data Transfer Object) یک شی است که برای انتقال داده ها طراحی شده است. بنابراین وظیفه اصلی آن ذخیره این داده ها است. هیچ منطقی در آن نیست علاوه بر این، باید سریالسازی شود، زیرا حمل و نقل اشیا معمولاً با استفاده از سریالسازی-جداسازی صورت میگیرد.
-
POJO مخفف "Old Style Java Object" است. آنها با اشیاء EJB در تضاد هستند. دومیها از یک قرارداد خاص پیروی میکنند و معمولاً به شدت به یک چارچوب سازمانی خاص مرتبط هستند (مثلاً باید سازنده عمومی بدون پارامتر داشته باشند، باید گیرندهها و تنظیمکنندهها برای فیلدها داشته باشند، باید سریالسازی شوند و غیره). بر این اساس POJO یک کلاس معمولی است که از هیچ کلاس خاصی ارث نمی برد و هیچ کتابخانه خاصی را پیاده سازی نمی کند. به طور معمول یک POJO کار خاصی انجام نمی دهد و فقط شامل حالت است.
-
Entity Bean — это бин, цель которого хранить некоторые данные. В логику такого бина встроен механизм сохранения себя и своих полей в базу данных. Такой an object может быть уничтожен, а потом воссоздан из базы заново. Но кроме хранения данных у него нет ниHowой логики. А бин в свою очередь — это особый класс, которые должен выполнять следующие правила:
- Класс должен иметь конструктор без параметров, с модификатором доступа public. Такой конструктор позволяет инструментам создать an object без дополнительных сложностей с параметрами.
- Свойства класса должны быть доступны через get, set и другие методы (так называемые методы доступа), которые должны подчиняться стандартному соглашению об именах. Это легко позволяет инструментам автоматически определять и обновлять содержание bean’ов. Многие инструменты даже имеют специализированные редакторы для различных типов свойств.
- Класс должен быть сериализуем. Это даёт возможность надёжно сохранять, хранить и восстанавливать состояние bean независимым от платформы и виртуальной машины способом.
- Класс должен иметь переопределенные методы equals(), hashCode() и toString().
-
Все коллекции-списки реализуют интерфейс List<E> и наследуются от абстрактного класса AbstractList<E>. Среди них можно выделить ArrayList<E> и LinkedList<E7gt;. ArrayList7lt;E> — это список, основаный на массиве, а LinkedList<E> — это классический двусвязный список.
-
Коллекции-множества в Java реализуют интерфейс Set<E> и наследуются от AbstractSet<E>. Множества — это такие наборы данных, в которых все элементы уникальны. Среди них в Java есть HashSet, LinkedHashSet и TreeSet. Первая коллекция хранит свои an objectы на основе хеш-codeов. Вторая — это модифицированная первая, в ней элементы ещё к тому же располагаются в связном списке, поэтому они все расположены в порядке добавления. Третья коллекция обеспечивает сортировку своих элементов.
-
Map — это вид коллекций, хранящих свои элементы в виде пар "ключ-значения". Причём все ключи должны быть уникальными. Среди реализаций есть HashMap и TreeMap. Первая реализация хранит элементы с использованием хэш-codeов. Вторая - хранит элементы в отсортированном по ключу порядке.
-
صف یک ساختار داده است که بر اساس اولین ورود، اولین خروجی عمل می کند. یعنی عناصر از یک سر به صف اضافه و از سر دیگر حذف می شوند. Deque یک صف دو طرفه است. در این صف می توان عناصر را هم به ابتدا و هم به انتها اضافه کرد و همچنین می توانید هم از ابتدا و هم از انتهای صف عناصر بگیرید. بر این اساس، روشهایی وجود دارند که به شما امکان میدهند یک عنصر را اضافه کنید (اینها روشهای add(e) و offer(e) هستند)، و روشهایی وجود دارند که به شما امکان میدهند عنصر را از صف حذف کنید (اینها روشهایی مانند remove( ) و نظرسنجی()). علاوه بر این، متدهایی وجود دارند که به شما این امکان را می دهند که به سادگی یک عنصر را از صف بدون حذف آن از آنجا دریافت کنید (اینها متدهای () element و () peek هستند). رابط Deque علاوه بر این دارای روشهایی برای افزودن عناصر به ابتدا و انتهای صف، بازیابی عناصر از ابتدا یا پایان، و گرفتن عناصر از ابتدا یا انتهای یک صف (بدون حذف آنها از صف) است.
-
پیاده سازی های ساده شامل ArrayDeque ، LinkedList و PriorityQueue هستند . همچنین کلاس های زیادی در مجموعه های همزمان وجود دارد که این دو اینترفیس را (هر دو به طور همزمان یا فقط یکی از آنها) پیاده سازی می کنند.
-
درخت یک نمودار متصل بدون حلقه یا لبه های متعدد است. به طور معمول، اگر N رأس در درخت وجود داشته باشد، تعداد یال ها حداقل N-1 است. همچنین یک راس در درخت به عنوان ریشه انتخاب می شود. رئوس باقی مانده شاخه اعلام می شوند. به شاخه هایی که شاخه ای از خود ندارند، برگ درخت می گویند.
درختان به طور گسترده ای در برنامه نویسی استفاده می شوند و انواع زیادی از این درخت قبلا اختراع شده اند. یکی از پرکاربردترین درختان درخت باینری است. در این درخت، هر عنصر حداکثر دو فرزند دارد (یعنی از 0 تا 2 می تواند باشد). یکی از انواع درخت دودویی BST - درخت جستجوی باینری است. در این درخت، قاعده ای بر عناصر تحمیل شده است: فرزند چپ عنصر باید از نظر ارزش کمتر از آن باشد و فرزند راست باید از نظر ارزش بیشتر یا مساوی با آن باشد.
درختان قرمز و سیاه نیز وجود دارد. این یک نوع درخت جستجوی دودویی است. در درختان قرمز-سیاه، یکی دیگر از ویژگی های عنصر معرفی شده است - رنگ. رنگ می تواند سیاه یا قرمز باشد. همچنین، هر درخت قرمز-سیاه باید شرایط زیر را برآورده کند:- ریشه درخت سیاه است.
- گره قرمز یا سیاه است.
- تمام برگ های درخت سیاه است.
- هر دو نوادگان گره قرمز سیاه هستند.
- هر مسیری از یک گره معین به هر گره برگ که از نسل آن است شامل همان تعداد گره سیاه است.
GO TO FULL VERSION