Bir tasarım fabrikası ve MVC dışında tasarım desenlerini çok sık kullanmıyorum ve daha fazla kullanmaya başlamak istiyorum.
Elimde somut bir durum var, bu durumda tasarım modellerinin kullanımı hakkındaki görüşünüzü istiyorum.
Uygulamamda farklı durumlarda nesneleri sık sık dönüştürmem gerekiyor. Bir Hazırda Bekletme POJO'sunu bir DTO'ya dönüştürmem gerekebilir, çünkü GWT kullanıyorum ve Hazırda Bekletme POJO'ları seri hale getirilemiyor ve satır üzerinden gönderilemiyor.
Başka bir durumda Java nesnelerini Solr ile indekslemek için SolrInputDocument dizinine dönüştürmem gerekebilir.
Bunun için bir tasarım deseni kullanmam gerekip gerekmediğini bilmek istiyorum. Görünüşe göre, "nesne dönüştürme" esnek / soyut bir şekilde bir kalıpla ele alınabilecek genel bir görevdir, ancak gerçekten nasıl olduğunu anlamıyorum.
Kalıplar olmadan her dönüşüm türü için ayrı bir sınıf oluşturabilirim, örneğin CourseToSolrInputDocument (Kurs, uygulamamda Hazırda Bekletme öğesidir). Veya CourseToCourseDTO. Bu dönüştürme sınıflarının her biri convert()
, kaynak nesneyi girdi olarak alan ve çıktı nesnesini döndüren tek bir statik yönteme sahip olabilir .
Ama bu gerçekten bir model değil, değil mi? Bu yüzden generikleri olan bir şeyle başladım ve Converter arayüzünü uygulayan bu sınıfı yarattım. Ama bir şekilde aptalca bir genel bir arayüz yarattığını hissettiriyor ve kendimi jenerik kullanımı konusunda tebrik edemekten başka bir avantaj görmüyorum.
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.
}
}
Öyleyse, buradaki asıl soru şudur: genel nesne dönüşümü için geçerli bir model var mı ve yaklaşımınız ne olurdu ve yalnızca bir dönüşüm başına sınıf türü yaklaşımı kullanmanın avantajları nelerdir?