On 7/18/05, Adam Hardy <[EMAIL PROTECTED]> wrote: > While the business domain is normally modelled using OO techniques, the > view or user interface should be modelled using human behaviour analysis > techniques that produce the best interface for users to get their work > done efficiently, reflecting their mental model of what is going on. ... > If you do [the business/UI shortcut] everywhere, you run the risk > of forcing your users to learn the business domain OO model > which might be a huge leap away from their own mental model.
While I may agree that business model may differ from UI model, I cannot agree with the idea that they *should* be different. The first principle of OOP is that program objects reflect actual life objects. Department, employee, order, order items, etc. These are things that people work with, and these should be modeled by domain model. For example, we have department and employees. Or an order and order items. I think everyone would model it as Order-1:M-Item. What does a user work with? Same order and order items. What does a user expect to see? An order and items, corresponding to it. Of course, there are reference tables/objects, there are additional tables to ensure M:M relationship, there is a lot of plumbing behind. But a user does not work with plubming objects, unless it is a combobox with options. For example, Outlook Express. We have Folders with typed items like emails or news or forums. For each forum item there is a list of messages. For messages there is view preferences, sort order, and such. So, Folders and messages are definetely business objects. View preferences... that depends, but considering that OE's data model is specifically built for user interaction, view preferences can be stored along with each forum/message list as business object. I am not convinced that UI should be *that* different from domain model. Do you have examples? Michael. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]