การทำให้เป็นภายนอกใน 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