TL; DR - การใช้ไลบรารี POJO ร่วมกันระหว่างบริการต่าง ๆ เป็นเรื่องปกติไหม
โดยทั่วไปเราต้องการให้การแบ่งปันระหว่างบริการ จำกัด อย่างเข้มงวดเป็นไม่ถ้าเป็นไปได้ มีการถกเถียงกันบ้างหรือไม่ว่าบริการที่ใช้ข้อมูลร่วมกันนั้นควรจัดให้มีห้องสมุดลูกค้าให้ลูกค้าใช้หรือไม่ โดยทั่วไปแล้ว client-lib นั้นเป็นทางเลือกสำหรับลูกค้าของบริการที่จะใช้และสามารถใช้งาน API ได้อย่างไรก็ตามพวกเขาจะโปรดใช้ว่าจะใช้ client-lib หรือใช้ภาษาอื่นและใช้ลักษณะทั่วไปของไลบรารีและเช่นนั้น
ในกรณีของฉัน - ฉันพิจารณาบริการที่สร้างวัตถุของข้อมูล สมมติว่าวัตถุนี้เป็นสัตว์เลี้ยง มันไม่ใช่เอนทิตีของฐานข้อมูล แต่เป็น POJO ที่แสดงถึงข้อมูลพื้นฐานโดยนัย POJO นี้เป็นสิ่งที่ API ได้กำหนดไว้ สมมติว่า: สัตว์เลี้ยง - อายุ, น้ำหนัก, ชื่อ, เจ้าของ, ที่อยู่, สปีชี่ ฯลฯ
บริการ 1 - PetKeeper: มันจะสร้างสัตว์เลี้ยงด้วยเหตุผลใดก็ตามและเก็บข้อมูลทั้งหมดไว้และต้องอ้างอิงบริการนี้เพื่อรับสัตว์เลี้ยงหรือทำการดัดแปลงสัตว์เลี้ยงให้พูดการเปลี่ยนชื่อหรือการเปลี่ยนที่อยู่จะต้องทำผ่าน การเรียก API ไปยังบริการนี้
บริการ 2 - PetAccessor: บริการนี้รวบรวมสัตว์เลี้ยงและทำการตรวจสอบความถูกต้อง
บริการ 3,4 - การบริการระดับกลางเพิ่มเติม
บริการ 5 - ผู้ใช้ Inteface
สิ่งเหล่านี้โดยพลการมาก แต่ประเด็นก็ง่าย UI หรือบริการที่ผู้ใช้บางคนต้องการนำเสนอในทางใดทางหนึ่งวัตถุ "PET" นี้ มันจะต้องเรียกใช้บริการ API ซึ่งเรียกบริการซึ่งเรียกบริการ ฯลฯ จนกว่าจะถึงบริการที่รวบรวมข้อมูลที่จำเป็นและเริ่มต้นการถ่ายทอดกลับ ในที่สุดบริการ UI มีวัตถุ PET ที่จะแสดง
นี่เป็นเรื่องธรรมดา - แต่ด้วยความคิดที่แท้จริงของเราเราจึงจำลองวัตถุ PET ในทุกบริการ หลักการ (ไม่ต้องทำซ้ำตัวเอง) ใช้กับรหัสภายในบริการเท่านั้นและไม่ได้ใช้กับบริการต่าง ๆ แต่ประเด็นยังคงอยู่ที่นั่น ถ้าเราเพิ่มเขตข้อมูล ... เราต้องแก้ไข 5 บริการของ POJO ในแต่ละบริการ
- หรือ - เราสามารถให้ Pet-Objects-Library ซึ่งมีบางส่วนของ pojo จาก API และแต่ละบริการสามารถนำเข้า / อ้างอิงในไลบรารี ไม่มีการพึ่งพาตัวเอง แต่เป็นเพียงห้องสมุดทั่วไป ฉันชอบแนวคิดนี้เพื่อให้แต่ละบริการมีประเภทของวัตถุและการปรับปรุงที่ง่ายขึ้น แต่ฉันกังวลเกี่ยวกับพระเจ้าวัตถุ
อะไรคืออาชีพ / คอน - การออกแบบที่ดีที่สุดคืออะไร? คุณทำอะไรเพื่อส่งผ่านข้อมูลระหว่างบริการเพื่อลดการทำซ้ำ POJO คลาสเดียวกันในขณะที่ยังคงอยู่คู่กันอยู่