- MVCคืออะไร?
- DAOและDTOคืออะไร
- POJOคืออะไร?
- เอนทิตีคืออะไร?
- คุณรู้จักคอลเลกชันรายการใด บ้าง
- คุณรู้จักคอลเลกชันชุดใด บ้าง
- แผนที่คืออะไรแตกต่างจาก “ พจนานุกรม ” อย่างไร
- QueueและDequeueคืออะไร
- คุณรู้จักคลาสใดบ้างที่ใช้อินเทอร์เฟซ Queeue
- ต้นไม้คืออะไร?
-
MVCเป็นรูปแบบการออกแบบแอปพลิเคชัน โดยแอปพลิเคชันจะแบ่งออกเป็นสามส่วนแยกกัน ได้แก่ โมเดล มุมมอง และตัวควบคุม โมเดลให้ข้อมูลและตอบสนองต่อคำสั่งของคอนโทรลเลอร์โดยการเปลี่ยนสถานะ มุมมองมีหน้าที่ในการแสดงข้อมูลโมเดลแก่ผู้ใช้ ตอบสนองต่อการเปลี่ยนแปลงในโมเดล และผู้ควบคุมจะตีความการกระทำของผู้ใช้โดยแจ้งโมเดลเกี่ยวกับความจำเป็นในการเปลี่ยนแปลง ดังนั้นแต่ละส่วนประกอบของวงจรนี้จึงเชื่อมต่ออย่างหลวมๆ กับส่วนประกอบอื่นๆ ดังนั้นจึงทำให้โปรแกรมมีความยืดหยุ่น ส่วนใหญ่แล้ว ตรรกะทางธุรกิจทั้งหมดจะมีอยู่ในโมเดล แม้ว่าบางครั้งจะมีอยู่ในตัวควบคุมด้วยก็ตาม ในกรณีแรกแบบจำลองเรียกว่าแบบบางส่วนแบบหลังมีความหนา
-
DAO (Data Access Object) เป็นอ็อบเจ็กต์ที่มีหน้าที่หลักคือบันทึกข้อมูลลงในฐานข้อมูลและดึงข้อมูลออกมา DTO (Data Transfer Object) เป็นวัตถุที่ออกแบบมาเพื่อส่งข้อมูล ดังนั้นหน้าที่หลักคือการจัดเก็บข้อมูลนี้ มันไม่มีเหตุผลใดๆ นอกจากนี้ จะต้องเป็นแบบซีเรียลไลซ์ได้ เนื่องจากการขนส่งอ็อบเจ็กต์มักจะเกิดขึ้นผ่านการซีเรียลไลซ์เซชัน-การดีซีเรียลไลซ์
-
POJOย่อมาจาก "วัตถุ Java แบบเก่า" พวกมันแตกต่างกับวัตถุ EJB อย่างหลังเป็นไปตามแบบแผนพิเศษและมักจะเชื่อมโยงอย่างเคร่งครัดกับเฟรมเวิร์กองค์กรเฉพาะ (เช่น ต้องมีตัวสร้างสาธารณะที่ไม่มีพารามิเตอร์ ต้องมี getters และ setters สำหรับฟิลด์ จะต้องทำให้เป็นอนุกรมได้ เป็นต้น) ดังนั้น 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)) และมีวิธีที่ช่วยให้คุณสามารถลบองค์ประกอบออกจากคิวได้ (ซึ่งเป็นวิธีการเช่น ลบ( ) และการสำรวจความคิดเห็น()) นอกจากนี้ ยังมีวิธีการที่ช่วยให้คุณรับองค์ประกอบจากคิวโดยไม่ต้องลบออกจากที่นั่น (นี่คือเมธอด element() และ peek() อินเทอร์เฟซ Deque ยังมีวิธีการเพิ่มองค์ประกอบที่จุดเริ่มต้นและจุดสิ้นสุดของคิว การดึงองค์ประกอบจากจุดเริ่มต้นหรือจุดสิ้นสุด และรับองค์ประกอบจากจุดเริ่มต้นหรือจุดสิ้นสุดของคิว (โดยไม่ต้องลบออกจากคิว)
-
การใช้งานที่ เรียบง่าย ได้แก่ArrayDeque , LinkedListและPriorityQueue นอกจากนี้ยังมีคลาสหลายคลาสใน Concurrent Collections ที่ใช้อินเทอร์เฟซทั้งสองนี้ (ทั้งในคราวเดียวหรือเพียงคลาสเดียว)
-
ต้นไม้คือกราฟที่เชื่อมต่อกันโดยไม่มีการวนซ้ำหรือหลายขอบ โดยทั่วไป หากมีจุดยอด N จุดในต้นไม้ จำนวนขอบอย่างน้อย N-1 นอกจากนี้ จุดยอดหนึ่งจุดในต้นไม้ยังถูกเลือกเป็นรากอีกด้วย จุดยอดที่เหลือจะถูกประกาศเป็นกิ่งก้าน กิ่งที่ไม่มีกิ่งก้านเป็นของตัวเองเรียกว่าใบของต้นไม้
ต้นไม้ถูกนำมาใช้กันอย่างแพร่หลายในการเขียนโปรแกรม และต้นไม้ชนิดนี้หลายชนิดได้ถูกประดิษฐ์ขึ้นแล้ว ต้นไม้ชนิดหนึ่งที่ใช้กันอย่างแพร่หลายคือต้นไม้ไบนารี ในแผนผังนี้ แต่ละองค์ประกอบมีลูกได้มากที่สุดสองคน (นั่นคือ สามารถมีได้ตั้งแต่ 0 ถึง 2) แผนผังไบนารีประเภทหนึ่งคือ BST - แผนผังการค้นหาแบบไบนารี ในแผนผังนี้ มีการกำหนดกฎให้กับองค์ประกอบ: ลูกด้านซ้ายขององค์ประกอบจะต้องมีค่าน้อยกว่ามูลค่าของมัน และลูกด้านขวาจะต้องมีค่ามากกว่าหรือเท่ากับมูลค่าของมัน
มีต้นแดงดำด้วย นี่คือแผนผังการค้นหาแบบไบนารีชนิดหนึ่ง ในต้นไม้สีแดงดำจะมีการแนะนำคุณสมบัติอื่นขององค์ประกอบนั่นคือสี สีอาจเป็นสีดำหรือสีแดง นอกจากนี้ต้นไม้สีแดงดำแต่ละต้นจะต้องเป็นไปตามข้อกำหนดดังต่อไปนี้:- รากของต้นไม้เป็นสีดำ
- โหนดเป็นสีแดงหรือสีดำ
- ใบของต้นไม้ทั้งหมดเป็นสีดำ
- ทายาททั้งสองของโหนดสีแดงมีสีดำ
- ทุกเส้นทางจากโหนดที่กำหนดไปยังโหนดปลายสุดใดๆ ที่สืบทอดมาจะมีโหนดสีดำจำนวนเท่ากัน
GO TO FULL VERSION