ฉันไม่ได้ใช้รูปแบบการออกแบบบ่อยครั้งนอกเหนือจากโรงงานเป็นครั้งคราวและ MVC และฉันต้องการเริ่มใช้พวกเขามากขึ้น
ฉันมีกรณีที่เป็นรูปธรรมที่ฉันต้องการความเห็นของคุณเกี่ยวกับการใช้รูปแบบการออกแบบในกรณีนี้
ในแอปพลิเคชันของฉันฉันต้องแปลงวัตถุบ่อยครั้งในสถานการณ์ที่แตกต่างกัน ฉันอาจต้องแปลง PONO ของ Hibernate เป็น DTO เนื่องจากฉันใช้ GWT และ Hibernate POJO นั้นไม่สามารถต่อเนื่องได้และไม่สามารถส่งข้ามสายได้
ในสถานการณ์อื่นฉันอาจต้องแปลงวัตถุ Java เป็น SolrInputDocument เพื่อสร้างดัชนีโดย Solr
ฉันต้องการทราบว่าฉันควรใช้รูปแบบการออกแบบสำหรับสิ่งนี้หรือไม่ ดูเหมือนว่า "การแปลงวัตถุ" เป็นงานทั่วไปที่สามารถจัดการในรูปแบบที่มีความยืดหยุ่น / เป็นนามธรรมโดยรูปแบบ แต่ฉันไม่เห็นวิธีจริงๆ
หากไม่มีรูปแบบฉันจะสร้างคลาสแยกต่างหากสำหรับการแปลงแต่ละประเภทตัวอย่างเช่น CourseToSolrInputDocument (หลักสูตรเป็นเอนทิตีไฮเบอร์เนตในแอปพลิเคชันของฉัน) หรือ CourseToCourseDTO แต่ละคลาสการแปลงเหล่านี้อาจมีวิธีสแตติกเดียวที่เรียกconvert()
ว่าใช้วัตถุต้นทางเป็นอินพุตและส่งคืนวัตถุเอาต์พุต
แต่นั่นไม่ใช่รูปแบบจริงๆใช่ไหม? ดังนั้นฉันจึงเริ่มทำบางสิ่งกับยาชื่อสามัญและสร้างคลาสนี้ที่ใช้ส่วนต่อประสานตัวแปลง แต่อย่างใดรู้สึกโง่ tgo สร้างอินเทอร์เฟซทั่วไปและฉันไม่เห็นประโยชน์นอกเหนือจากความสามารถในการแสดงความยินดีกับการใช้ generics
public class CourseToSolrInputDocument implements Converter<Course, SolrInputDocument> {
@Override
public void convert(Course source, SolrInputDocument destination) {
//To change body of implemented methods use File | Settings | File Templates.
}
}
ดังนั้นคำถามจริงที่นี่คือ: มีรูปแบบที่ใช้กับการแปลงวัตถุทั่วไปและสิ่งที่จะเป็นวิธีการของคุณและสิ่งที่ได้เปรียบกว่าการใช้เพียงวิธีการเรียนแบบต่อการแปลง?