หลักการผกผันการพึ่งพาใน JAVA
หลักการพื้นฐานที่สุดประการหนึ่งของกฎหมายอเมริกันคือ "ทุกคนเท่าเทียมกัน" เราไม่สนใจว่าการต่อสู้หรือการนองเลือดจะเกิดขึ้นได้อย่างไร เราเข้าใจเพียงวิธีการของ JAVA เท่านั้น ซึ่งมีคำจำกัดความดังนี้:
บูลีนสุดท้ายสาธารณะ ทุกคนเท่าเทียมกัน (บุคคลที่ 1, บุคคลที่ 2){
กลับเป็นจริง;
-
แม้ว่ากฎหมายของแต่ละรัฐอาจแตกต่างกัน เช่น กฎหมายพื้นฐานของสหรัฐอเมริกา แต่กฎหมายนิวยอร์กอาจเรียกว่ากฎหมายพื้นฐานของนิวยอร์ก ซึ่งควรมีความสัมพันธ์เช่นนี้: กฎหมายพื้นฐานของนิวยอร์กสืบทอดกฎหมายพื้นฐานของสหรัฐอเมริกา ระบุ แต่ไม่อนุญาตให้เขียนวิธีนี้ใหม่
เมื่อพูดถึงการบังคับใช้ในนิวยอร์ก จะมีการใช้สิ่งต่อไปนี้:
กฎหมายพื้นฐานของสหรัฐอเมริกา = กฎหมายพื้นฐานของนิวยอร์กใหม่
การเรียกวิธี "ทุกคนเท่าเทียมกัน" ทุกที่จะให้ผลลัพธ์ "จริง" ซึ่งหมายความว่าหลักการของความเท่าเทียมกันของทุกคนไม่สามารถเปลี่ยนแปลงได้ทุกที่ นี่เป็นการตัดสินใจระดับมหภาคที่กำหนดระดับจุลภาค และจะไม่เปลี่ยนแปลงระหว่างชายและหญิงเพราะนิว ยอร์ก. ความไม่เท่าเทียมกันของผู้หญิง.
ตัวอย่างเช่น บางประเทศก็มีกฎหมายพื้นฐานและวิธีการแห่งความเท่าเทียมกันสำหรับทุกคน คำจำกัดความควรเป็นดังนี้:
บูลีนสาธารณะ ทุกคนเท่าเทียมกัน (บุคคลที่ 1 บุคคลที่ 2) {
กลับเป็นจริง;
-
ตัวอย่างเช่น สถานที่บางแห่งในบางประเทศก็มีกฎหมายพื้นฐานเช่นกัน กฎหมายพื้นฐานของสถานที่บางแห่งก็สืบทอดมาจากกฎหมายพื้นฐานของบางประเทศเช่นกัน อย่างไรก็ตาม เนื่องจากวิธีการ "ทุกคนเท่าเทียมกัน" ยังไม่ถือเป็นที่สิ้นสุด อาจเขียนใหม่ได้เมื่อปฏิบัติ ณ ที่แห่งใดแห่งหนึ่งอาจเป็น:
กฎหมายพื้นฐานของบางประเทศ = กฎหมายพื้นฐานใหม่ของสถานที่บางแห่ง
หรือ
กฎหมายพื้นฐานของสถานที่บางแห่ง = กฎหมายพื้นฐานใหม่ของสถานที่บางแห่ง
บางทีเมื่อกฎหมายพื้นฐานของสถานที่บางแห่งสืบทอดกฎหมายพื้นฐานของบางประเทศ วิธีการ "ทุกคนเท่าเทียมกัน" ก็ถูกเขียนใหม่และเปลี่ยนเป็น:
บูลีนสาธารณะ ทุกคนเท่าเทียมกัน (บุคคลที่ 1 บุคคลที่ 2) {
if(บุคคล 1==บุคคลจากสถานที่บางแห่ง&& บุคคล 2==บุคคลจากสถานที่บางแห่ง){
if(บุคคลที่ 1 และบุคคลที่ 2 มีคุณสมบัติเหมือนกัน){
if(บุคคลที่ 1 และบุคคลที่ 2 เหมือนกันแต่ไม่ใช่บุคคลเดียวกัน){
ถ้า(ไม่มีใครเกิดขึ้นอีก){
กลับเป็นจริง;
}อื่น{
กลับเท็จ;
-
}อื่น{
กลับเท็จ;
-
}อื่น{
กลับเท็จ;
-
}อื่น{
กลับเท็จ;
-
-
เรามาพูดถึงหลักการผกผันการพึ่งพาตาม "JAVA และรูปแบบ":
ระดับนามธรรมประกอบด้วยตรรกะทางธุรกิจของระบบแอปพลิเคชันและการตัดสินใจเชิงกลยุทธ์ระดับมหภาคที่มีความสำคัญต่อทั้งระบบและเป็นภาพสะท้อนของสิ่งที่หลีกเลี่ยงไม่ได้ ในขณะที่ระดับที่เป็นรูปธรรมประกอบด้วยอัลกอริธึมและตรรกะที่เกี่ยวข้องกับการใช้งานเล็กน้อย เช่นเดียวกับยุทธวิธี การตัดสินใจเกี่ยวข้องกับโอกาสอย่างมาก รหัสระดับเฉพาะจะเปลี่ยนแปลงบ่อยครั้ง และข้อผิดพลาดไม่สามารถหลีกเลี่ยงได้ ระดับของนามธรรมขึ้นอยู่กับระดับของความเป็นรูปธรรม การเปลี่ยนแปลง Algorithm โดยใช้รายละเอียดในระดับเฉพาะส่งผลต่อตรรกะทางธุรกิจระดับมหภาคทันที ทำให้การใช้กล้องจุลทรรศน์กำหนดขนาดมหภาค กลยุทธ์ในการกำหนดกลยุทธ์ และโอกาสในการกำหนดความจำเป็น นี่มันไร้สาระ
หลังจากอ่านบทความนี้แล้ว คุณจะเข้าใจว่าทำไมคุณจึงควรใช้มันบ่อยขึ้นในการเขียนโค้ดในอนาคต:
ตรรกะเชิงนามธรรม = ตรรกะที่เป็นรูปธรรมใหม่
ใช้ให้น้อยที่สุด:
ตรรกะเฉพาะ = ตรรกะเฉพาะใหม่
นี่เป็นอีกตัวอย่างหนึ่งของการเขียนโปรแกรมเชิงอินเทอร์เฟซ:
โดยปกติแล้วคุณควรใช้ List บ่อยกว่า List เองเป็นอินเทอร์เฟซที่สืบทอดมาจาก Collection คุณสามารถใช้ได้ดังนี้:
รายการ รายการ = เวกเตอร์ใหม่ ();
รายการที่ประกาศในลักษณะนี้จริงๆ แล้วเป็นประเภท Vector เนื่องจาก Vector เป็นคลาสย่อย ตามหลักการทดแทน Liskov คลาสย่อยสามารถยอมรับได้ทุกที่ที่คลาสพาเรนต์สามารถยอมรับได้ ในขณะนี้ รายการได้รับการซิงโครไนซ์ และแน่นอนว่าจะได้รับผลกระทบจากประสิทธิภาพบางอย่าง หากคุณเปลี่ยนเป็นสภาพแวดล้อมที่ไม่ต้องการการซิงโครไนซ์ในอนาคต คุณเพียงแค่ต้องเปลี่ยนโค้ดด้านบนเป็นดังนี้:
รายการ รายการ = ใหม่ ArrayList ();
ไม่จำเป็นต้องแก้ไขโค้ดอื่น ประเภทรายการจริงในขณะนี้คือ ArrayList
จากจุดนี้ เราจะเห็นได้ว่าเหตุใดนักออกแบบจึงชื่นชอบการเขียนโปรแกรมเชิงอินเทอร์เฟซ เนื่องจากหลังจากที่พวกเขาจัดเตรียมอินเทอร์เฟซแล้ว ผู้นำไปใช้งานจะใช้คลาสเฉพาะตามอินเทอร์เฟซ และไม่จำเป็นต้องกังวลเกี่ยวกับตัวดำเนินการที่จะทำลายความสมบูรณ์ของต้นฉบับ โปรแกรมและผู้ออกแบบจะไม่สนใจเฉพาะวิธีการในอินเทอร์เฟซเท่านั้น ไม่ต้องกังวลเกี่ยวกับวิธีการเสริมในคลาสที่เป็นรูปธรรม แต่สิ่งนี้มาพร้อมกับค่าใช้จ่ายเพิ่มเติม เช่น การเพิ่มคลาส JAVA หากคลาสนามธรรมมีประสิทธิภาพน้อยลง ก็เป็นทางเลือกที่ดีกว่าในการใช้การเชื่อมต่อที่เป็นรูปธรรม เช่น คลาสเครื่องมือ