zoukankan      html  css  js  c++  java
  • The Object Model and Domain Model patterns

    The Object Model and Domain Model patterns are often considered to refer to the
    same thing. They may initially look exactly the same, because both carry data
    extracted from storage. But after digging a bit, you’ll find that they have differences:
    the object model contains only the data, whereas the domain model contains data
    and exposes behavior.
    The Order class that we’ve been looking at is a perfect expression of an object
    model. It has properties that hold data and nothing more. You could add a computed
    property that reports the full address by combining the values of other properties, but
    this would be a helper method. It wouldn’t add any behavior to the class.
    If you want to move on from an object model to a domain model, you have to add
    behavior to the class. To better understand the concept of behavior, suppose you
    need to know if an order exceeds the allowed total amount. With an object model,
    you have to build a method on another class. In this method, you call the database
    to retrieve the maximum amount allowed, and then compare it with the amount of the
    order. If you opt for a domain model, on the other hand, you can add an IsCorrect
    method to the Order class and perform the check there. This way you’re adding
    behavior and expressiveness to the Order class.
    Creating and maintaining a domain model isn’t at all easy. It forces the software
    architect to make choices about the design of the application. In particular, classes
    must be responsible for their own validation and must always be in a valid state. (For
    instance, an order must always have a related customer.) These checks may contribute
    to code bloating in the classes; so, to avoid confusion, you may have to create
    other classes that are responsible for validation, and keep those classes in the
    domain model.
    The details of the Object Model and Domain Model patterns are beyond the scope of
    this book and won’t be covered, but plenty of books focus on this subject and all its
    implications. We recommend Domain Driven Design by Eric Evans (Addison-Wesley
    Professional, 2004). We’ll discuss the Domain Model pattern and Entity Framework
    in chapter 14.

  • 相关阅读:
    RIFF格式简介
    获取控制台窗口句柄GetConsoleWindow
    控制台编程基础总结
    控制台访问权限、别名及注意事项
    控制台输入输出机制实例
    控制台输入输出机制
    控制台基础概念实例
    STL之std::set、std::map的lower_bound和upper_bound函数使用说明
    wcout输出中文不显示
    控制台基础概念
  • 原文地址:https://www.cnblogs.com/rash/p/2816570.html
Copyright © 2011-2022 走看看