当前位置: 首页 > news >正文

建网站怎么挣钱企业应用平台下载

建网站怎么挣钱,企业应用平台下载,专业网页设计师培训机构,公司企业模板wordpress模板逻辑建模与物理建模在讨论用于建模域逻辑#xff08;例如事务脚本#xff0c;表模块#xff0c;域模型#xff09;的PoEAA模式时#xff0c;我注意到人们对域模型模式是最好的印象#xff08;尽管印象不对#xff09;。 因此#xff0c;他们开始将其应用于所有内容。 … 逻辑建模与物理建模 在讨论用于建模域逻辑例如事务脚本表模块域模型的PoEAA模式时我注意到人们对域模型模式是最好的印象尽管印象不对。 因此他们开始将其应用于所有内容。 不配领域模型模式 让我们成为现实。 大多数子系统都是基于CRUD的。 系统的仅特定部分需要域模型实现模式。 或者换句话说应用程序的某些部分仅需要数据上的表格和一些验证逻辑例如必填/必填字段数字的最小/最大值文本的最小/最大长度。 对于这些领域模型是不值得的。 对于这些也许贫血领域模型会很好地适合。 贫血领域模型并不像听起来那样糟糕 贫血领域模型并不像听起来那样糟糕。 在那儿我说了至少在我的博客文章中如此。 但是看起来怎么样 package com.acme.bc.domain.model; ... Entity class Person {Id ... private Long id;private String firstName;private String lastName;// ...// getters and setters } ... interface PersonRepository /* extends CrudRepositoryPerson, Long */ {// CRUD methods (e.g. find, find/pagination, update, delete) }package com.acme.bc.infrastructure.persistence; ... class PersonRepositoryJpa implements PersonRepository {... } 在表示层中控制器可以访问存储库。 该存储库负责提取持久性详细信息。 package com.acme.bc.interfaces.web;Controller class PersonsController {private PersonRepository personRepository;public PersonsController(PersonRepository personRepository) {...}// ... } 在这种情况下将Person类暴露给表示层是完全可以的。 表示层可以直接使用它因为它具有一个公共的零参数构造函数获取器和设置器而视图很可能需要这些构造器。 那里有。 一个简单的基于CRUD的应用程序。 您还需要服务层吗 否。您还需要DTO 数据传输对象吗 不需要。在这种简单的CRUD情况下您不需要其他服务或DTO 。 是的此Person看起来像域实体。 不过这并不包含逻辑并且只是用来传输数据。 因此它实际上只是一个DTO。 但这没关系因为它可以完成保存持久性存储和检索的数据的工作。 现在 如果业务逻辑开始变得更加复杂则最初贫乏的领域模型中的某些实体可能会变得更加富有行为。 如果是这样的话这些实体可以值得一个领域模型模式。 贫血领域模型的替代品 作为贫血领域模型如上所述的替代方法可以将这些类移出领域逻辑层并移入表示层。 而不是命名 PersonRepository 现在命名为 PersonDao 。 package com.acme.bc.interfaces.web;Entity class Person {...}Controller class PersonsController {private PersonDao personDao;public PersonsController(PersonDao personDao) {...}// ... }interface PersonDao /* extends CrudRepositoryPerson, Long */ {// CRUD methods (e.g. find, find/pagination, update, delete) }package com.acme.bc.infrastructure.persistence;class PersonDaoJpa implements PersonDao {... }太多分层 我认为如果您必须通过不增加价值的强制性应用程序服务那将是一个过大的杀伤力。 package com.acme.bc.interfaces.web; ... Controller class PersonsController {private PersonService personService;public PersonsController(PersonService personService) {...}// ... }package com.acme.bc.application; ... Service class PersonService {private PersonRepository personRepository;public PersonService(PersonRepository personRepository) {...}// expose repository CRUD methods and pass to repository// no value add } 将存储库保留在domain.model包中。 将存储库实现放置在另一个包中例如 infrastructure.persistence 。 但为什么 domain.model包是定义存储库的位置。 域模型中的元素指示存储库接口定义中需要哪些方法。 因此存储库定义放置在domain.model包中。 存储库实现需要遵循添加的新方法或删除未使用的方法。 此包装遵循依赖关系反转原理。 infrastructure.persistence程序包取决于domain.model程序包而不是相反。 交易申请服务 那么什么时候应用服务合适 应用程序服务负责驱动工作流程和协调事务管理例如通过使用Spring中的声明性事务管理支持。 如果您发现简单的CRUD应用程序需要在表示层控制器中启动事务那么将它们移至应用程序服务中可能是一个好兆头。 当控制器需要更新多个不具有单个根的实体时通常会发生这种情况。 这里通常的示例是在银行帐户之间转移金额。 需要进行交易以确保借方和贷​​方都成功或都失败。 package sample.domain.model; ... Entity class Account {...} ... interface AccountRepository {...}package sample.interfaces.web; ... Controller class AccountsController {private AccountRepository accountRepository;...Transactionalpublic ... transfer(...) {...} } 如果看到了这一点那么最好将其从表示层移至应用程序层服务。 package sample.interfaces.web; ... Controller class AccountsController {private AccountRepository accountRepository;private TransferService transferService;...public ... transfer(...) {...} }package sample.application; ... Service Transactional class TransferService {private AccountRepository accountRepository;...public ... transfer(...) {...} }package sample.domain.model; ... Entity class Account {...} ... interface AccountRepository {...}复杂逻辑的域模型模式仅 我将以重复输入记帐为例。 但我敢肯定还有更适合的复杂逻辑。 假设我们将日记帐分录和科目建模为域实体。 该帐户包含余额金额。 但这并不是一个简单的设定。 需要创建日记帐分录。 过帐日记帐分录时它将影响指定的帐户。 然后该帐户将更新其余额。 package ….accounting.domain.model; ... /** Immutable */ Entity class JournalEntry {// zero-sum itemsElementCollectionprivate CollectionJournalEntryItem items;... } ... /** A value object */ Embeddable class JournalEntryItem {...} ... interface JournalEntryRepository {...} ... Entity class Account {...} ... interface AccountRepository {...} ... Entity class AccountTransaction {...} ... interface AccountTransactionRepository {...} 现在在这种情况下一个简单的实现将有一个表示层控制器创建一个日记帐分录对象并使用一个存储库来保存它。 并且在某个时间点或如果使用自动过账将创建相应的帐户交易并更新帐户余额。 所有这些都需要汇总成一个事务即全有或全无。 同样此事务理想地移至应用程序服务。 package ….accounting.application;Service Transactional class PostingService {...} 如果需要允许用户浏览日记帐分录和帐户交易则表示层控制器可以直接使用相应的存储库。 如果域实体不适合于视图技术例如它不遵循JavaBean命名约定则表示层可以定义适合于视图的DTO。 小心 不要仅仅为了满足表示层的需求而更改域实体。 package ….interfaces.web;Controller class AccountsController {private AccountRepository accountRepository;private AccountTransactionRepository accountTransactionRepository;private PostingService postingService;... }即将结束... 所以你有它。 希望这篇文章可以阐明何时以及何时不使用域模型模式。 现在我想我要感冒了。 翻译自: https://www.javacodegeeks.com/2016/10/architectural-layers-modeling-domain-logic.html逻辑建模与物理建模
http://www.pierceye.com/news/758363/

相关文章:

  • 手表网站背景素材玉山网站建设
  • 增城新塘网站建设温州网站推广效果
  • 东莞市住房建设局网站编程能干什么
  • asp做一个简单网站推广图片素材
  • 新网站一直不被收录wordpress 视频 广告
  • 网站建设费账务处理一个小胖子从网站做任务的网站故事
  • 国外被墙网站东营建设信息网最新消息
  • iphone下载网页视频北京百度seo排名公司
  • 怎么自己做网站免费的衡阳seo网站推广
  • 一键生成论文的网站做亚马逊有哪些网站可以清货
  • 一屏网站模板下载 迅雷下载 迅雷下载地址网站建设合并但与那个
  • 营销型网站四大功能吉林市网站制作
  • 如何制作钓鱼网站网页制作基础教程9787121095306教案
  • 专业定制网站企业吉林省住房城乡建设厅网站首页
  • 免费高清素材网站方维网络科技有限公司
  • 长春行业网站重庆智能建站模板
  • 北湖区网站建设公司wordpress的cute主题
  • 沈阳网站建设 景乔科技网站制作杭州
  • 网站维护工程师月薪多少精品网站建设公
  • 永久免费企业网站申请网站开发主框架一般用什么布局
  • 网站做非经营性广告需备案python免费看电影的应用
  • 网站分哪些种类自己做网站模版
  • 汪峰做的音乐网站长沙制作公园仿竹护栏实体厂家
  • 深圳专业网站建设公司排名好的h5网站模板
  • h5做网站教程网店营销的推广方法有哪些
  • 网站关键词快速排名工具wordpress子主题
  • 做百度网站那家好google 网站质量问题
  • 网站建设维护书网站资料清单
  • 网站建设公司 深圳信科网站维护计划
  • 做网站用什么语言比较简单网站seo优化总结