ฉันกำลังเขียนไคลเอนต์ Java ที่สื่อสารกับเซิร์ฟเวอร์ระยะไกลผ่าน HTTP/XML
เซิร์ฟเวอร์ส่งคำสั่งไปยังไคลเอนต์ของฉันในรูปแบบ XML เช่นนี้
<command>
<name>C1</name>
<param>
.....
</param>
</command>
มีคำสั่งที่แตกต่างกันประมาณ 10 คำสั่งขึ้นไป (C1, C2, ...) แต่ละคำสั่งมีชุดพารามิเตอร์ที่แตกต่างกัน
ไคลเอนต์ของฉันจะประมวลผลคำสั่ง จากนั้นเซิร์ฟเวอร์ตอบกลับพร้อมผลลัพธ์การดำเนินการจะมีลักษณะดังนี้:
<C1>
<code>200</code>
<desc>xxx</desc>
</C1>
ฉันคุ้นเคยกับภาษา C เท่านั้น แต่ยังใหม่มากสำหรับ Java และ OOP
ดังนั้นคำถามของฉันง่ายมาก จะออกแบบตรรกะต่อไปนี้อย่างสวยงามด้วยวิธี OOP ได้อย่างไร
1. แปลงสตริง XML เป็นวัตถุ XML
2.ค้นหาตัวดำเนินการที่สอดคล้องตามองค์ประกอบ 'ชื่อ' ของ XML และแยกวิเคราะห์พารามิเตอร์
3.ดำเนินการคำสั่งพร้อมกับพารามิเตอร์
4.แปลงผลลัพธ์เป็นวัตถุ XML
5.แปลงวัตถุ XML เป็นสตริง XML
นี่เป็นการออกแบบที่ดีหรือไม่?
1.กำหนดคลาสฐานนามธรรมและคลาสย่อยจำนวนมากสำหรับแต่ละคำสั่ง ซึ่งรวมถึงวิธีการต่อไปนี้:
void parseCommand(MyXMLObject obj);
void execute();
MyXMLObject generateResult();
หรือเพียงวิธีง่ายๆ:
MyXMLObject execute(MyXMLObject obj);
และฟิลด์เหล่านี้:
String mCommandName;
int mRetCode;
String mRetDesc;
2. จากนั้นกำหนดคลาสโรงงานเพื่อส่งคืนอินสแตนซ์ของคลาสย่อยใดคลาสหนึ่งตามอ็อบเจ็กต์ XML
3. รหัสส่วนตรรกะ:
MyXMLObject obj = MyXMLUtil.getXMLObject(XMLString);
MyCommand command = MyCommandFactory.getCommand(obj);
MyXMLObject retObj = command.execute();
String retStr = MyXMLUtil.getString(retObj);
...//network operation