การทำให้เป็นภายนอกใน Java คืออะไร? อินเทอร์เฟซ คุณลักษณะ และตัวอย่าง
เผยแพร่แล้ว: 2021-02-04เพื่อตอบคำถาม ว่าการทำให้เป็นภายนอกคืออะไร ใน java เราสามารถพูดได้ว่ามันเป็นกลไกทั่วไปที่นำมาใช้เพื่อปรับแต่งการทำให้เป็นอนุกรม มันถูกใช้กับประเด็นหลักที่การทำให้ซีเรียลไลซ์เซชั่นของจาวานั้นไม่มีประสิทธิภาพ ดังนั้นจึงใช้พารามิเตอร์การปรับแต่งภายนอกเมื่อมีอ็อบเจ็กต์ป่องที่มีคุณสมบัติและแอททริบิวมากมาย
สารบัญ
Serialization และ Externalization คืออะไร?
การทำให้ เป็นอนุกรม - เป็นกลไกที่ใช้ในการเขียนข้อมูลของอ็อบเจ็กต์เป็น byte-stream กระบวนการนี้ส่วนใหญ่ใช้ในเทคโนโลยี RMI, JMS, JPA อีกประเภทหนึ่งประกอบด้วยกลไกที่ย้อนกลับการทำงานและกระบวนการของการซีเรียลไลซ์เซชันและเรียกว่าดีซีเรียลไลเซชัน หน้าที่ของการทำให้เป็นอันดับตามชื่อที่แสดงคือการทำให้เป็นอนุกรมของวัตถุที่มีอยู่ในจาวา
การทำให้เป็น ภายนอก - ถูกกำหนดให้เป็นกลไกที่ใช้ในการปรับแต่งกลไกการทำให้เป็นอนุกรม Bloatware ไม่เร็วและตอบสนอง ทำให้เกิดความต้องการกลไกที่ดีที่มีประสิทธิภาพและตอบสนองมากพอที่จะปรับแต่งกระบวนการทั้งหมดได้
ในการซีเรียลไลซ์เซชั่น เครื่องโปรแกรม Java จะตอบสนองต่อกระบวนการเขียนและอ่านอ็อบเจ็กต์ นี่เป็นสถานการณ์กรณีที่ใช้กันมากเนื่องจากโปรแกรมเมอร์ได้รับภาระที่ต้องกังวลเกี่ยวกับกระบวนการซีเรียลไลซ์เซชั่น ในกรณีดังกล่าว การทำซีเรียลไลซ์เซชั่นการทำงานเริ่มต้นไม่ได้ตั้งใจที่จะบันทึกข้อมูลรับรองที่สำคัญ เช่น ID ล็อกอินและรหัสผ่าน
แต่ถ้าโปรแกรมเมอร์พบว่าจำเป็นต้องรักษาความปลอดภัยข้อมูลประจำตัวเดียวกัน การทำให้เป็นภายนอกพิสูจน์จุดประสงค์เพื่อให้ควบคุมการจัดการข้อมูลของวัตถุการอ่านและการเขียนข้อมูลในระหว่างการทำให้เป็นอนุกรมได้อย่างสมบูรณ์
ชำระเงิน: Java Frameworks ยอดนิยม

อินเทอร์เฟซภายนอกได้
อินเทอร์เฟซถูกนำไปใช้เมื่อมีข้อกำหนดในการกลั่นกรองการอ่านและการเขียนอ็อบเจ็กต์ในระหว่างการทำให้เป็นอนุกรมและดีซีเรียลไลซ์เซชั่น ดังนั้น ความต้องการคลาสอ็อบเจ็กต์ที่มี อินเทอร์เฟซ java.io.externalisable ช่วยให้ผู้ใช้และโปรแกรมเมอร์นำโค้ดที่กำหนดเองไปใช้กับสถานะของอ็อบเจ็กต์โดยการเขียนใน writeExternal() และอ่านอ็อบเจ็กต์ใน เมธอด readExternal()
เพื่อความคิดที่ดีขึ้นให้เราเข้าใจทั้งสองวิธี
readExternal() ทำงานเมื่อวัตถุรับอินพุต เนื้อหาจะถูกเรียกคืนไปยังบริบทดั้งเดิมโดยวิธีการ ป้อนข้อมูล โดยการเรียก วิธีการเขียนวัตถุสำหรับวัตถุ สตริง และอาร์เรย์
writeExternal() ทำงานเมื่ออ็อบเจ็กต์รับอินพุต และวิธีการของเอาต์พุตข้อมูลบันทึกเนื้อหาโดยการเรียก เมธอด read Object สำหรับอ็อบเจ็กต์ สตริง และอาร์เรย์
คุณสมบัติ
การทำให้เป็นภายนอกช่วยในการนำการควบคุมตรรกะไปใช้กับแอปพลิเคชันโดยข้ามการ อ่านภายนอก และ เขียน วิธีการ ภายนอก
การทำให้เป็นภายนอกได้รับการพิสูจน์แล้วว่าเป็นวิธีที่มีประสิทธิภาพสำหรับโปรแกรมเมอร์ เนื่องจากพวกเขาสามารถสร้างโค้ดด้วยมโนธรรมและตรรกะเพื่อกำจัดตัวแปรในระหว่างการทำให้ภายนอกของอ็อบเจ็กต์ Java
วิธีการทำให้เป็นภายนอกให้การควบคุมด้วยตนเองอย่างสมบูรณ์สำหรับแนวทางการนำไปใช้ และสามารถบอกเป็นนัยถึงการทำให้เป็นอนุกรมอ็อบเจ็กต์และการสืบทอดได้เช่นกัน
อ่านเพิ่มเติม: คำถามสัมภาษณ์ Java
ตัวอย่าง
// อินเตอร์เฟซ
นำเข้า java.io.*;
class Car ใช้ Externalizable {
อายุ int คงที่;
ชื่อสตริง;
ปี int;
รถสาธารณะ()
{
System.out.println("ตัวสร้างเริ่มต้นเรียกว่า");
}
รถยนต์(String n, int y)
{
this.name = n;
this.year = y;
อายุ = 10;
}
@แทนที่
โมฆะสาธารณะ writeExternal (ObjectOutput out)
พ่น IOException
{
out.writeObject(ชื่อ);
out.writeInt(อายุ);
out.writeInt(ปี);
}
@แทนที่
โมฆะสาธารณะ readExternal (ObjectInput in)
พ่น IOException, ClassNotFoundException
{
ชื่อ = (สตริง)in.readObject();
ปี = in.readInt();
อายุ = in.readInt();

}
@Override สตริงสาธารณะ toString()
{
กลับ (“ชื่อ: ” + ชื่อ + “\n”
+ “ปี: ” + ปี + “\n”
+ “อายุ: ” + อายุ);
}
}
คลาสสาธารณะ ExternExample {
โมฆะคงที่สาธารณะ main(String[] args)
{
รถยนต์ รถยนต์ = รถใหม่("Shiney", 1995);
รถ newcar = null;
// จัดลำดับรถ
พยายาม {
FileOutputStream สำหรับ
= ใหม่ FileOutputStream(“gfg.txt”);
ObjectOutputStream ดังนั้น
= ObjectOutputStream ใหม่ (สำหรับ);
so.writeObject(รถ);
ดังนั้น.flush();
}
จับ (ข้อยกเว้น e) {
System.out.println(จ);
}
// เลิกซีเรียลรถ
พยายาม {
FileInputStream fi
= ใหม่ FileInputStream(“gfg.txt”);
ObjectInputStream si
= ใหม่ ObjectInputStream(fi);
newcar = (รถ) si.readObject ();
}
จับ (ข้อยกเว้น e) {
System.out.println(จ);
}
System.out.println("รถเดิมคือ:\n" + รถ);
System.out.println("รถใหม่คือ:\n" + รถใหม่);
}
}
เอาท์พุท:
ตัวสร้างเริ่มต้นที่เรียกว่า
รถเดิมคือ
ชื่อ: Shiney
ปี: 1995
อายุ: 10
รถใหม่คือ:
ชื่อ: Shiney
ปี: 1995
อายุ: 10
ตัวอย่างนี้เป็นตัวอย่างคลาสสิกที่อธิบายว่าเมื่อมีการสร้างอ็อบเจ็กต์ภายนอกขึ้นมาใหม่ อินสแตนซ์จะถูกทริกเกอร์ด้วยคอนสตรัคเตอร์ที่ไม่มีอาร์กิวเมนต์สาธารณะ สิ่งนี้มักจะเรียก เมธอด readExternal ดังนั้น ด้วยความช่วยเหลือของอินเทอร์เฟซภายนอก จะสามารถควบคุมการเปรียบเทียบคลาส Java ได้อย่างสมบูรณ์

ดังนั้นในขณะที่ใช้ externalize จำเป็นและสำคัญที่สถานะฟิลด์ทั้งหมดต้องอยู่ในลำดับที่แน่นอนตามที่เขียนไว้
อ่านเพิ่มเติม: แนวคิดและหัวข้อโปรเจ็กต์ Java
เรียนรู้ หลักสูตรการพัฒนาซอฟต์แวร์ออนไลน์ จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
บทสรุป
เมื่อถูกถามถึง สิ่งที่เป็นภายนอกในจาวา เราสามารถพูดได้ว่ามีความสำคัญเนื่องจากการจัดลำดับแบบกำหนดเองที่มีให้และให้การควบคุมเต็มรูปแบบในการปรับแต่งการทำให้เป็นอันดับและแนวทางการนำไปใช้ เมธอด readExternal และ writeExternal จะต้องถูกเขียนทับโดยคลาส มันให้ประสิทธิภาพที่ดีกว่าการทำให้เป็นอนุกรมมาก
เชื่อมต่อกับ upGrad เพื่อให้เข้าใจ java ได้ดีขึ้นและลึกซึ้งยิ่งขึ้นผ่านหลักสูตร Executive PG Program เกี่ยวกับการพัฒนาแบบเต็มรูปแบบ เพื่อเพิ่มเส้นโค้งการเรียนรู้ที่คุณสามารถเริ่มต้นได้ในราคา 10,000 Rs และเข้าถึงการบรรยายออนไลน์
อินเทอร์เฟซใน Java คืออะไร?
อินเทอร์เฟซเป็นหนึ่งในประเภทใน java ที่ไม่มีการใช้งานใด ๆ และเป็นเพียงกลุ่มของวิธีการลงลายมือชื่อ ไม่สามารถสร้างอินเทอร์เฟซนี้ได้ เหตุผลเบื้องหลังข้อเท็จจริงนี้คืออินเทอร์เฟซเหล่านี้เป็นเพียงชุดของลายเซ็นเมธอด เมื่อเราสร้างอินเทอร์เฟซแล้ว เราไม่สามารถเพิ่มวิธีการใหม่เข้าไปได้อีก ตัวอย่างเช่น เราไม่สามารถเพิ่มวิธีการในอินเทอร์เฟซ java.Aspect ซึ่งจะช่วยเราในการปรับเปลี่ยนพฤติกรรมของชั้นเรียนจากภายนอกชั้นเรียน เนื่องจากสิ่งนี้ขัดกับหลักการเขียนโปรแกรมเชิงวัตถุ ในความเป็นจริงอินเทอร์เฟซไม่มีอะไรเลยนอกจากส่วนขยายคำอธิบายประกอบจาวา เราควรใช้อินเทอร์เฟซเพื่อให้โค้ดของเราสว่าง
การทำให้เป็นภายนอกใน Java คืออะไร?
การทำให้เป็นภายนอกคือความสามารถของวัตถุในการทำให้สถานะของมันเปลี่ยนแปลงได้ การทำให้เป็นภายนอกถูกใช้ในรูปแบบการออกแบบ เช่น Singleton, Factory และ Prototype เพื่อนำหลักการผกผันการพึ่งพาและหลักการการแยกส่วนต่อประสานไปใช้ Externalization ไม่ใช่คุณสมบัติในตัวของ Java แต่เป็นไปได้ที่จะเพิ่มคุณสมบัตินั้นในคลาส การทำให้เป็นภายนอกเป็นกระบวนการของการแปลงอ็อบเจ็กต์เป็นสตรีมอักขระใน Java เป็นกลไกที่ใช้สำหรับจัดเก็บวัตถุในไฟล์ในรูปแบบไบนารี ใช้สำหรับจัดเก็บข้อมูลอักขระในไฟล์ตามลำดับไบต์ ข้อมูลสามารถอ่านได้ในการดำเนินการครั้งต่อไปของโปรแกรม Java
คุณสมบัติของภาษาการเขียนโปรแกรมจาวาคืออะไร?
Java เป็นภาษาโปรแกรมและแพลตฟอร์มการประมวลผลที่เปิดตัวครั้งแรกโดย Sun Microsystems ในปี 1995 มีการเปิดตัวการอัปเดตหลายรายการตั้งแต่นั้นมา โดยเวอร์ชันล่าสุดคือ Java 11 Java ตั้งใจให้ทำงานบนแพลตฟอร์มใดๆ ที่สามารถรองรับเครื่องเสมือน Java ได้ ด้วยเหตุนี้ เป็นแพลตฟอร์มการเขียนโปรแกรมด้วย มันสามารถทำงานในสภาพแวดล้อมที่มีเพียงแค่เบราว์เซอร์ แต่ส่วนใหญ่มักจะใช้กับ Java Virtual Machine (JVM) เวอร์ชันต่างๆ ภายใต้ชุดของโปรแกรมที่เรียกว่า Application Programming Interface หรือ API