2013-11-01 66 views
3

Avro網站的目的有一個例子:什麼是DatumWriter的Avro公司

DatumWriter<User> userDatumWriter = new SpecificDatumWriter<User>(User.class); 
DataFileWriter<User> dataFileWriter = new DataFileWriter<User>(userDatumWriter); 
dataFileWriter.create(user1.getSchema(), new File("users.avro")); 
dataFileWriter.append(user1); 
dataFileWriter.append(user2); 
dataFileWriter.append(user3); 
dataFileWriter.close(); 

什麼是DatumWriter<User>的目的是什麼?我的意思是它提供了什麼?它提供了write方法,但不使用它,我們使用DataFileWriter。有人可以解釋它的設計目的嗎?

+0

它看起來像[裝飾設計模式](http://en.wikipedia.org/wiki/Decorator_pattern)給我。 –

回答

3

DatumWriter類負責將給定數據對象轉換爲具有給定模式的avro記錄(從您的用戶類中提取出來)。

鑑於此記錄,DataFileWriter負責將其寫入文件。