โมดูลาร์ใน Java อธิบายด้วยตัวอย่างทีละขั้นตอน [2022]

เผยแพร่แล้ว: 2021-01-02

เมื่อคุณตั้งใจจะเป็นโปรแกรมเมอร์ Java มีโอกาสมากมาย โดยเฉลี่ยแล้ว โปรแกรมเมอร์ Java มีรายได้ประมาณ 69,722 ดอลลาร์ต่อเดือน ซึ่งเป็นผล ตอบแทนที่ ดี เรียนรู้เพิ่มเติมเกี่ยวกับเงินเดือนนักพัฒนา Java ในอินเดีย หากคุณวางแผนที่จะมีอาชีพที่ดีในการเขียนโปรแกรม Java โมดูลาร์เป็นสิ่งที่คุณควรเรียนรู้ก่อน เป็นส่วนสำคัญของการเขียนโปรแกรมซอฟต์แวร์สมัยใหม่ ก่อนอื่นเรามาทำความเข้าใจว่าโมดูลคืออะไร?

Modularity ใน Java คืออะไร?

โมดูลเป็นเหมือนพาร์ติชั่นอิสระของซอฟต์แวร์ที่สื่อสารผ่านอินเทอร์เฟซ โมดูลาร์ลิตี้สำรวจการสร้างโปรแกรมโดยใช้โมดูลที่แตกต่างจากสถาปัตยกรรมดั้งเดิมเพียงตัวเดียว มันเหมือนกับไมโครเซอร์วิสในสถาปัตยกรรม MVC โดยที่ทั้งระบบเป็นชุดบริการอิสระ

ด้วยโมดูลาร์ การแบ่งพาร์ติชั่นของสภาพแวดล้อมซอฟต์แวร์ในโมดูลต่างๆ ทำให้กระบวนการทั้งหมดมีประสิทธิภาพสูงสุด และลดผลกระทบจากการมีเพศสัมพันธ์ ช่วยให้นักพัฒนา Java ทำการทดสอบฟังก์ชันขณะเดินทางในขณะที่กระบวนการพัฒนาดำเนินไปพร้อม ๆ กัน

โมดูลาร์ใน Java ช่วยให้มั่นใจได้ว่าเวลาในการพัฒนาจะลดลงด้วยการทดสอบและการดีบักทันที

ตอนนี้เรารู้เกี่ยวกับโมดูลาร์แล้ว มาทำความเข้าใจกันว่าทำไมคุณถึงต้องการมัน

อ่าน: คำถามและคำตอบสัมภาษณ์ Java

ลงทะเบียนเรียน หลักสูตรวิศวกรรมซอฟต์แวร์ จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

ทำไมเราถึงต้องการ Java modularity?

Modularity ช่วยนักพัฒนา Java ในสามวิธี

การนำกลับมาใช้ใหม่ได้: ความสามารถในการนำกลับมาใช้ใหม่สามารถช่วยนักพัฒนาประหยัดเวลาโดยใช้รหัสเดียวกันในขณะที่สร้างซอฟต์แวร์หรือแอปเวอร์ชันใหม่กว่า ด้วยโมดูลาร์ใน Java คุณสามารถใช้โมดูลซ้ำที่อื่นนอกเหนือจากซอฟต์แวร์ที่พัฒนาแล้วในตอนแรก

ความเสถียร: ความ เป็นโมดูลช่วยรักษาเสถียรภาพของซอฟต์แวร์ในขณะที่ทำการเปลี่ยนแปลงในแต่ละส่วนของโค้ด หมายความว่าการปรับเปลี่ยนใหม่ยังคงซ่อนจากผู้บริโภคและสามารถทดสอบได้อย่างง่ายดายโดยไม่ส่งผลกระทบต่อซอฟต์แวร์ที่มีอยู่

การพัฒนาแบบขนาน: นักพัฒนา Java สามารถพัฒนาโมดูลแบบคู่ขนานกันได้อย่างรวดเร็ว เมื่อโมดูลทั้งหมดได้รับการพัฒนาแล้ว สามารถรวมกันผ่านอินเทอร์เฟซเพื่อสร้างชุดโปรแกรมได้ การใช้การพัฒนาแบบคู่ขนานสามารถประหยัดเวลาได้

ตอนนี้ เรามาสำรวจแง่มุมต่างๆ ของโมดูลาร์ใน Java

แม้ว่าโมดูลาร์จะถูกนำมาใช้ใน Java 9 เราจะสำรวจแนวคิดสำหรับ Java 11 ด้วยตัวอย่างง่ายๆ ในการสร้างเครื่องคิดเลข เราจะสร้างเครื่องคิดเลขที่เรียบง่ายแต่ล้ำสมัยที่จะตรวจสอบจำนวนเฉพาะ คำนวณผลรวมของพวกมัน ไม่ว่าตัวเลขจะเป็นคู่หรือไม่ก็ตาม

ขั้นตอนที่ 1: การสร้างโมดูล

ขั้นตอนแรกคือการสร้างโมดูล และคุณสามารถเลือกสร้างหลายโมดูลตามความซับซ้อนได้ ที่นี่ เรากำลังสร้างโมดูลที่แตกต่างกันสองโมดูล

  1. คณิตศาสตร์. ยูทิลิตี้โมดูล
  2. โมดูลเครื่องคิดเลข

โมดูลแรกมี API หรือ Application Program Interface สำหรับดำเนินการคำนวณทางคณิตศาสตร์ ในเวลาเดียวกัน โมดูลที่สองจะเปิดเครื่องคิดเลข

ขั้นตอนที่ 2: ดำเนินการโมดูล

เราจะดำเนินการโมดูล API ในเบราว์เซอร์โดยนำไปใช้ในคลาส com.upgrad.math.MathUtil

isPrime บูลีนแบบคงที่สาธารณะ (จำนวนเต็ม){

ถ้า (ตัวเลข == 1 ) { คืนค่าเท็จ; }

ส่งคืน IntStream.range(2,num).noneMatch(i -> num % i == 0 );

}

เราสามารถตรวจสอบโมดูลด้วยฟังก์ชัน

บูลีนแบบคงที่สาธารณะ isEven (จำนวนเต็ม){

ส่งคืนหมายเลข % 2 == 0;

}

หากคุณกำลังคิดที่จะตรวจสอบตัวเลขว่าเป็นคู่หรือคี่ เราสามารถดำเนินการฟังก์ชันอื่นได้

sumOfFirstNEvens แบบคงที่สาธารณะ (การนับจำนวนเต็ม) {

ส่งคืน IntStream.iterate (1,i -> i+1)

.filter(j -> isEven(j))

.limit(นับ).sum();

}

จำนวนเต็มคงที่สาธารณะ sumOfFirstNOdds (จำนวนเต็ม) { return IntStream.iterate (1,i -> i+1) .filter(j -> !isEven(j)) .limit(count).sum(); }

จนถึงตอนนี้ เราได้ดำเนินการสองฟังก์ชันบนโมเดล API และได้ทำการสังเกตดังต่อไปนี้

  • มีลำดับอนันต์เริ่มจากเลข 1
  • การกรองตัวเลขซ้ำแล้วซ้ำอีก
  • กระแสของตัวเลขมีจำกัด
  • การหาผลรวมของตัวเลข

จากการสังเกตเหล่านี้ นักพัฒนาสามารถปรับเปลี่ยนโครงสร้าง API และดำเนินการได้

การคำนวณจำนวนเต็มFirstNSum(การนับจำนวนเต็ม

ตัวกรอง IntPredicate){

ส่งคืน IntStream.iterate (1,i -> i+1)

.filter(ตัวกรอง)

.limit(นับ).sum();

}

ในที่นี้ เราต้องหาผลรวมของตัวเลขที่ถูกจำกัดด้วยการนับ เราจะต้องค้นหาตัวกรองสำหรับตัวเลขในเงื่อนไขที่จะทำการรวม

มาสร้าง API ขึ้นใหม่โดยอิงตามเงื่อนไขใหม่ที่เราสำรวจ

จำนวนเต็มคงที่สาธารณะ sumOfFirstNprimes (จำนวนเต็ม) {

ส่งคืน computeFirstNSum(นับ, (i -> isPrime(i)));

}

sumOfFirstNEvens แบบคงที่สาธารณะ (การนับจำนวนเต็ม) { ส่งคืน computeFirstNSum (นับ (i -> isEven (i))); }

จำนวนเต็มคงที่สาธารณะ sumOfFirstNOdds (จำนวนเต็ม) { ส่งคืน computeFirstNSum (นับ (i -> !isEven (i)));

ตอนนี้เราได้ทดสอบ API และปรับโครงสร้างใหม่แล้ว ให้วางคลาส com.upgrad.math.MathUtil ลงในโมดูล

ขั้นตอนที่ 3: การแทรกคลาสยูทิลิตี้ในโมดูล

เพื่อแทรกคลาสยูทิลิตี้ขนาดเล็กลงในโมดูลชื่อคณิตศาสตร์ util คุณต้องปฏิบัติตามข้อตกลงบางอย่างเช่น

  • ใส่โค้ดทั้งหมดที่เกี่ยวข้องกับโมดูล API ลงในไดเร็กทอรีชื่อเดียวกัน และใช้เป็นไดเร็กทอรีราก
  • แทรก module-info.java ในโฟลเดอร์รูท
  • วางแพ็คเกจและรหัสทั้งหมดในไดเร็กทอรีรูท

ขั้นตอนที่ 4: การสร้างคำจำกัดความโมดูลสำหรับเครื่องคิดเลข

เราจะสร้างโมดูลเครื่องคิดเลขที่ต้องใช้ math.utl

เครื่องคิดเลขโมดูล{

ต้องการ math.util;

}

เราสามารถคอมไพล์โค้ดได้โดยทำตาม

javac -d mods –module-source-path $(ค้นหา . -name “*.java”)

เมื่อเราคอมไพล์โค้ดจากเครื่องคิดเลขและโมดูล math.utl ในไดเร็กทอรี mods คำสั่งเดียวจะรวมการพึ่งพาระหว่างสองโมดูลนี้ ซึ่งทำผ่านคอมไพเลอร์ ไม่จำเป็นต้องสร้างเครื่องมือเฉพาะเพื่อสร้างการพึ่งพาระหว่างเครื่องคิดเลขกับ maths.utl

ขั้นตอนที่ 5: รันโค้ด

เมื่อคุณมีทั้งโมดูลในไดเร็กทอรี mods และการอ้างอิงแล้ว ตอนนี้ก็ถึงเวลารันโค้ด การดำเนินการจะนำเครื่องคิดเลขที่เรียบง่ายและทันสมัยของเราไปสู่การปฏิบัติ

java –module-path mods -m calculator/com.upgrad.calculator.Calculator

ต้องอ่าน: โครงการและหัวข้อ Java ที่น่าสนใจ

บทสรุป

จากการสำรวจพบ ว่า Java เป็นภาษาที่ต้องการสูงสุดเป็นอันดับสองในแง่ของการโพสต์งานใหม่ ซึ่งทำให้เป็นตัวเลือกที่ยอดเยี่ยมสำหรับผู้เริ่มต้น

หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ Java, OOP และการพัฒนาซอฟต์แวร์ฟูลสแตก โปรดดูโปรแกรม Executive PG ของ upGrad & IIIT-B ในการพัฒนาซอฟต์แวร์ฟูลสแตก ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 500 ชั่วโมง 9+ โครงการและการมอบหมาย สถานะศิษย์เก่า IIIT-B โครงการหลักในทางปฏิบัติและความช่วยเหลือด้านงานกับ บริษัท ชั้นนำ

เตรียมความพร้อมสู่อาชีพแห่งอนาคต

สมัครเลยตอนนี้สำหรับปริญญาโทด้านวิศวกรรมซอฟต์แวร์