DW (and to some extent, LJ before it) uses an OO layer above database tables (eg, LJ::User, LJ::Entry) instead of a monolithic model (or without an additional factory class on top of the existing OO layer - I'm not sure which your code samples are trying to illustrate). I'm not sure what benefits the additional indirection would provide over what we already have. Could you elaborate?
no subject