美文网首页
6. 掌管对象的生命周期,工厂

6. 掌管对象的生命周期,工厂

作者: 米来MiLai | 来源:发表于2020-01-14 14:49 被阅读0次

自定义的公寓树


大雄不想做作业了,想逃离父母管教,拥有自己的公寓的时候,哆啦A梦给他一颗公寓树,满足了这个想法。公寓树可以根据自己的需要向土里延申,创建出运动房、餐厅、书房。当胖虎、静香、阿福过来了,又满足了他们的想法,创建出棒球场、钢琴室、游戏室。

这颗树洞就像我们的房间工厂,他不用去知道到底需要创建什么内容,他构造出一个一个内容,由需要的人进行装修设计,摆放自己的家具,他只要满足开放一个门,以便与房间互通规则。

应用与反思

星空里的单据也是这样的,通过动态领域模型抽象出来的实体,我不管对应的对象到底是基础资料(物料、供应商、客户、销售员),还是单据(采购订单、销售订单),还是报表,他们统一都是有MVC组成,抽象的控制器C,抽象视图V以及我们已经存在的抽象实体。

工厂就是我们不得不说的名词了,它有两点基本要求:

  1. 原子的,因为要保证创建对象或者Aggregate的所有固定规则,Factory创建的对象都要处于一致的状态;
  2. 工厂应当被抽象为所需的类型,而不是具体类。创建型的设计模式是我们常用的方式,有的时候还可以用构造函数,是一种实现策略,当然有的时候增加接口,是为了我们能耦合参数。

重建对象

回归到工厂构建对象,我们不但在新建对象的时候需要使用到工厂,在从持久化的内容中,重建对象的时候,应当满足下面要求,

  1. 不分配新的ID,也就是继续使用旧对象持久化的唯一标识,这也是实体具有的特点;
  2. 不满足固定规则的应该拒绝创建或者忽略掉,否则创建出的对象因某属性不存在,而存在缺陷。

相关文章

  • 6. 掌管对象的生命周期,工厂

    自定义的公寓树 大雄不想做作业了,想逃离父母管教,拥有自己的公寓的时候,哆啦A梦给他一颗公寓树,满足了这个想法。公...

  • Spring IoC 容器

    典型的工厂模式。 容器负责创建对象,管理生命周期,Spring容器使用依赖注入(DI)来管理,这些对象称为Spri...

  • 前端(十五)

    1.获取地址栏参数 2.Math 3.单体创建对象 4.工厂模式创建对象 5.构造函数 6.原型模式 7.函数的继...

  • Android高级进阶之-性能优化-内存优化

    内存泄露产生的原因:短生命周期对象被长生命周期对象引用,短生命周期对象功能周期结束后,长生命周期对象还没有释放该引...

  • 内存泄漏分析

    前言 当短生命周期对象销毁且不再被使用时,长生命周期对象依然持有了短生命周期的对象引用,导致短生命周期对象一直不会...

  • iOS面试系列之生命周期(对象的生命周期、Controller的

    对象的生命周期 对象生命周期(Object life cycle) 在OC中一个对象的生命周期就是指,这个对象从创...

  • 《领域驱动设计精简版》读书五

    3个模式将处理不同的建模挑战,它们跟领域对象的生命周期相关 聚合是一个用来定义对象所有权和边界的领域模式。工厂和资...

  • Python类对象的生命周期与内存管理机制

    一、类对象的生命周期 什么是类对象的生命周期?就是从对象创建 ----> 对象使用 ----> 对象销毁废话少说...

  • handler内存泄露

    长生命周期引用短生命周期对象,gc来时短生命周期对象gc不可达。 mainthread 持有mainlooper持...

  • 设计模式之工厂模式(一)

    介绍工厂模式 工厂模式创建对象(视为工厂里的产品)时无需指定创建对象的具体类。 工厂模式定义一个用于创建对象的接口...

网友评论

      本文标题:6. 掌管对象的生命周期,工厂

      本文链接:https://www.haomeiwen.com/subject/udtaactx.html