Podstawowy DBobject nie jest przestarzały. Jedyną przestarzałą częścią BasicDBobject jest DBPointer
class i kilka innych metod, takich jak toString() and getId()
Dokument implementuje Map<String, Object>
i jest mniej kodu do napisania w porównaniu do obiektu Basic DB
DBObject Chociaż nie jest to zalecane w przypadku nowych aplikacji, osoby dokonujące aktualizacji z serii sterowników 2.x mogą nadal używać interfejsu DBObject do reprezentowania dokumentów BSON. DBObject jest podobny do Document, ponieważ reprezentuje wartości BSON jako Object, ale ma kilka niedociągnięć, których nie można było przezwyciężyć:
-
jest to interfejs, a nie klasa, więc jego API nie może zostać rozszerzone bez naruszenia kompatybilności binarnej.
-
W rzeczywistości nie implementuje Mapy.
-
Ponieważ jest to interfejs, wymagana jest oddzielna konkretna klasa o nazwie BasicDBObject, która implementuje ten interfejs
Bson Aby to wszystko połączyć, sterownik zawiera mały, ale potężny interfejs o nazwie Bson. Każda klasa reprezentująca dokument BSON, niezależnie od tego, czy jest zawarta w samym sterowniku, czy od strony trzeciej, może zaimplementować ten interfejs i może być następnie używana w dowolnym miejscu w API wysokiego poziomu, gdzie wymagany jest dokument BSON.