6 领域驱动设计 概念挖掘

# ubuntu 系统使用 yum命令报错 There are no enabled repos.Run “yum repolist all“ to see the repos you have... # ubuntu 系统使用 yum命令报错 There are no enabled repos.Run "yum repolist all" to see the repos you have.You can enable repos with yum-config-manager --enable 阅读详情

当开发人员和领域专家都在使用设计中没有的词汇时,可能已经遗漏了某个对象
当你在重构中遇到某几个类具有相似的行为和参数,那么你可能可以提炼一个超类

示例

如下,你如何挖掘概念

// 聚合根
class Component {
    ...
    public string MenuName { get; set; }

	public string PageName { get; set; }
	
	public string PageIndex { get; set; }

    public CssSetting CssSetting { get; set; }
}

// 怕有些同学不懂 Action<string> 是一个函数,接收 string 类型的参数,返回 void
// 等价于 (string param) => void
class MenuBox {
    public void SetMenu(string menuName, Action<string> changeMenu){...}
}

class PageBox {
    public void SetPage(string pageName, string pageIndex, Action<string, string> submit){...}
}

class CssBox {
    public void SetCss(CssSetting cssSetting, Action<CssSetting> changeCss) {...}
}

1.为了减少依赖,所以我们的服务应该依赖于聚合根,重构如下:

class MenuBox {
    public void SetMenu(Component component, Action<Component> changeMenu){...}
}

class PageBox {
    public void SetPage(Component Component, Action<Component> submit){...}
}

class CssBox {
    public void SetCss(Component Component, Action<Component> changeCss) {...}
}

2.重构后几个服务都具有相似的参数,所以提炼基类

abstract class BaseBox {
    public abstract void SetComponent(Component component, Action<Component> submit);
}

class MenuBox : BaseBox {
    public void SetComponent(Component component, Action<Component> submit){...}
}

class PageBox : BaseBox {
    public void SetComponent(Component Component, Action<Component> submit){...}
}

class CssBox : BaseBox {
    public void SetComponent(Component Component, Action<Component> submit) {...}
}

3.后续如可重构取决于你的设计(如,几个方法的处理流程相同或相似,那么是否可以取消继承等)

jdk-8u144-linux-x64.tar.gz. 该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包 立即下载

相关推荐

AUTOSAR/汽车行业

AUTOSAR架构及汽车产业链相关介绍

m0_54254513的博客 1万+

深度学习概念挖掘——Batch

深度学习概念挖掘——Batch

Change ZH的博客 481

PySpark 本地开发环境搭建与实践

本文详细介绍了 PySpark 本地开发环境的搭建过程,包括 JDK、Hadoop、Anaconda、PySpark 的安装以及 Pycharm 工程的创建。同时,深入讲解了代码编写、本地开发案例(如 WordCount、处理特殊分隔符、读取 hdfs 数据、获取外部变量)、Spark 程序的监控和 local 模式下结果文件数量问题等内容。通过掌握这些知识和技能,读者可以在 Windows 本地环境中高效地进行 PySpark 开发,处理大规模数据,解决实际业务中的数据分析和处理问题。

天冬忘忧的博客 3013

深度学习概念挖掘——GPU

深度学习概念挖掘——GPU

Change ZH的博客 1239

第4章-07-将WebDriver获取的Cookie传递给Requests

在使用Selenium WebDriver获取了浏览器的Cookies之后,你可以将这些Cookies传递给requests库,以便在后续的HTTP请求中使用这些Cookies。这样做可以让你模拟浏览器会话,使得请求看起来像是从之前使用Selenium WebDriver控制的浏览器发出的。

黑夜开发者的博客 692

Cadence PSpice 仿真6:反向放大器傅里叶仿真(FFT,谐波分析)实战图文教程

总谐波失真(THD)指音频信号源通过功率放大器时,由于非线性元件所引起的输出信号比输入信号多出的额外谐波成分。比如理想运放输出为5V 1Khz的正玄波时,实际输出的信号按照傅里叶展开后不但含有5V 1KHZ的分量,还有1V 2KHZ的分量,那么多出来的1V的分量就是二次谐波,二次谐波失真系数就是20%,由于任意1个波形按照傅里叶展开是可以展开到n次的,所以除了二次谐波外,输出的信号还有3,4,5……n次谐波,随着n的变大谐波的分量会变小,总谐波失真系数就是所有谐波分量和1次谐波(基波)的比值。Cadence

fydar的博客 4956

数据挖掘——基本概念

1、定义:对于数据挖掘我们可以从两个角度来定义它: a. 技术定义:数据挖掘是通过对大量的数据进行分析,以发现和提取隐含在其中的具有价值的信息和知识的过程。 b.商业定义: 数据挖掘是一种新的商业信息处理技术, 其主要特点是对商业数据库中的大量业务数据进行抽取、 转换、 分析和其他模型化处理, 从中提取辅助商业决策的 关建化数据。 2、数据挖掘的主要模型有:分类与预测,聚类和关联分析等

Algorithmguy的专栏 1万+

[Python从零到壹] 十四.机器学习之分类算法五万字总结全网首发(决策树、KNN、SVM、分类对比实验)

分类(Classification)属于有监督学习(Supervised Learning)中的一类,它是数据挖掘、机器学习和数据科学中一个重要的研究领域。分类模型类似于人类学习的方式,通过对历史数据或训练集的学习得到一个目标函数,再用该目标函数预测新数据集的未知属性。本章主要讲述分类算法基础概念,并结合决策树、KNN、SVM分类算法案例分析各类数据集,从而让读者学会使用Python分类算法分析自己的数据集,研究自己领域的知识,从而创造价值。 19.1 分类 19.1.1 分类模型 与前面讲述的聚类模型类似

杨秀璋的专栏 2万+

​KDD 2019 | 用户视角看世界:腾讯提出ConcepT概念挖掘系统,助力推荐搜索

来自腾讯PCG移动浏览器产品部和阿尔伯塔大学的研究者构建了ConcepT概念挖掘标记系统,其利用query搜索点击日志从用户视角提取不同的概念,以便提高对短文本(quer...

腾讯技术工程 561

Monorepo与pnpm:前端项目管理的完美搭档

pnpm又称 performant npm,翻译过来就是高性能的npm。Monorepo是一种项目开发与管理的策略模式,它代表"单一代码仓库"(Monolithic Repository)。在Monorepo模式中,所有相关的项目和组件都被存储在一个统一的代码仓库中,而不是分散在多个独立的代码仓库中,这些项目之间还可能会有依赖关系。

m0_68271787的博客 2562

OSPF规划两大模型:双塔奇兵、犬牙交错

大家好,今天给大家带来的是OSPF规划两大模型:双塔奇兵、犬牙交错,让我们直接开始吧! OSPF规划之双塔奇兵 说明: OSPF 如果某个区域存在两个 ABR,并且在两个 ABR 上都对 area n 内的路由做了聚合操作。 最佳配置: 两台ABR之间的红线应该使用以太网的子接口技术,一个子接口属于area0,另一个属于 area n;或者该链路规划为 area n,同时配置虚连接; ABR 的 loopback0 规划入 area 0 OSPF 规划之犬牙交错 说明: 有时接入层的设备会以乱序的

网络技术联盟站 2423

领域驱动设计-读书笔记-第九章-将隐形概念转变为显性概念

背景以及问题 什么是深层建模?深层建模包含了领域的核心概念,能够以最灵活简单的方式呈现出解决方案。深层建模第一步是要设法在模型中表达出领域的基本概念,随后在不断消化知识和重构过程中,实现模型的精化。 如何实现深层建模呢? 这是个比较大的话题。但是,一般开始深层建模的征兆是:我们可以识别出某个重要概念并且在模型把它显示的表达出来。 概念挖掘 示例:听出运输模型中缺失的概念 例子:团队已经...

阿健小站 804

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

领域驱动设计(DDD)全面解读

本章节将探讨DDD的核心概念——限界上下文(Bounded Context)与微服务的关系,以及如何在微服务中应用DDD原则,解决跨服务通信和数据一致性的问题。本章节将深入探讨实体和值对象的建模、聚合根的选择和设计、领域事件的处理,以及工厂和仓储的实现。本章节将介绍一些常用的DDD开发工具、推荐的书籍和学习资料,以及活跃的社区和论坛,帮助您深入学习和应用DDD。在某大型电商平台的订单系统中,由于业务的快速发展和需求的频繁变化,原有的系统架构无法满足高并发和高可用性的要求。

hello.reader 1298

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

领域驱动设计(Domain-Driven Design DDD)——通过重构找到深层次模型1

为找到深层次的模型,需要我们不断重构以实现突破。在这一过程中我们需要遵循一些原则和使用一些方法。

zhujisoft的专栏 2万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

《领域驱动设计--软件核心复杂性应对之道》精要总结

领域驱动设计–软件核心复杂性应对之道》由DDD的发明者Eric Evans所著,是DDD相关书籍中的经典著作。这本书围绕以模型驱动设计为核心提出一系列的模式用于解决建模过程中的各类问题。模式是在各个领域中都被广泛应用的一种语言,它是为解决领域内某一类问题而提出的标准化解决方案,模式通常会提供一组对应的上下文环境。在《微服务架构设计模式》一书中对模式有更精确的定义。众所周知的设计模式是为了解决技术层面一系列相关问题而提出的,它为我们提供了一种交流技术层面相关问题的通用语言。而本书提出的一系列领域模式。

wts327的博客 1100

DDD 领域驱动设计

1. 什么是领域(Domain) 我们所做的软件系统的目的都是来解决一系列问题,例如做一个电商系统来在线销售自己企业的产品;做一个灰度发布平台来提升服务的质量和稳定性。任何一个系统都会属于某个特定的领域,例如: 论坛是一个领域:要做一个论坛,那这个论坛的核心业务是确定的:比如用户发帖、回帖等核心基本功能; 电商系统是一个领域:只要是电商领域的系统,那核心业务就是:商品浏览、购物车、下单、减库...

GarfieldEr007的专栏 951

领域驱动设计 (DDD) 总结

领域驱动设计 DDD 参考地址: 《DDD领域驱动设计基本理论知识总结》 《关于领域驱动设计(DDD)中聚合设计的一些思考》 《基于 MVC 实践领域驱动(DDD)的思考》 《【DDD】领域驱动设计实践 —— 限界上下文识别》 一. DDD 简述 DDD (Domain-Driven Design),即领域驱动设计是思考问题的方法论,用于对实际问题建模,它以一种领域专家、设计人员、开发人员都能理解的通用语言作为相互交流的工具,然后将这些概念设计成一个领域模型。由领域模型驱动软件设计,用代码来实现该领域模

琦小虾的代码世界 3221

领域驱动设计的基础知识总结

1. 什么是领域(Domain) 我们所做的软件系统的目的都是来解决一系列问题,例如做一个电商系统来在线销售自己企业的产品;做一个灰度发布平台来提升服务的质量和稳定性。任何一个系统都会属于某个特定的领域,例如: 论坛是一个领域:要做一个论坛,那这个论坛的核心业务是确定的:比如用户发帖、回帖等核心基本功能; 电商系统是一个领域:只要是电商领域的系统,那核心业务就是:商品浏览、购物车、下单、减库存、付款交易等核心环节; 同一个领域的系统都具有相同的核心业务,因为他们要解决的问题的本质是类似的。因此可以推断

码农架构 503

领域驱动设计(DDD,Domain-Driven Design)

大家好,我是练习两年半的Java练习生,今天我们来讲一讲关于架构设计中的一种模式,领域驱动设计,也称DDD,Domain-Driven Design。还有介绍一下秒杀项目中领域模型的一些设计。

m0_52963553的博客 4156

领域驱动设计-Domain-Driven-Design概念

2021了,你应该要了解DDD了,不然领导和你吹牛你都听不懂,或者你都没法和别人吹牛了 一、Evans DDD 是什么 1.1 背景 2002年,敏捷宣言诞生 时代处于 CS 到 BS 的转换时期 2003年 Eric Evans 发表<领域驱动设计> 2013年 微服务诞生,微服务的拆分和边界限定成为了难点,因而DDD思想开始重新发挥作用 1.2 描述 2003 Eric Evans : Domain-Driven Design - Tackling Complexity in the

c_zyer的博客 748

解读《领域驱动设计 软件核心复杂性应对之道》(三)

重构就是在不改变软件功能的前提下重新设计它。好的模型不是一次就构建出来的,需要不断的重构。重构是无止境的,但也不是随机的。这部分阐述了一些指引我们保持正确方向的建模原则。我们可以利用这些原则改进我们的设计。

liufangbaishi2014的博客 465

业务单据进行领域驱动设计的最佳实践

本文以电商购物场景为例,介绍了领域驱动设计的应用实践。你会发现,DDD的核心目标就是通过各种实用性的方法和技巧提炼出具有体现问题实质的领域模型,协作解决领域问题,从而掌控问题领域本身的错综复杂性。DDD之于爱它的人,就像一个复杂、有挑战性的玩具,在思考问题本质、抽象知识模型中,进入心流状态。

阿里技术 4689

领域驱动设计在物流领域的应用

1.背景介绍 物流业务是现代社会的基石,它涉及到的领域非常广泛,包括物流计划、物流执行、物流监控等。随着物流业务的复杂化,传统的物流管理方法已经不能满足现代社会的需求。因此,需要一种更加高效、灵活的物流管理方法,这就是领域驱动设计(DDD)在物流领域的应用所在。 领域驱动设计是一种软件设计方法,它将业务领域的概念和规则映射到软件系统中,从而使软件系统更加接近业务领域的实际需求。DDD 在物流领...

AI天才研究院 955

领域驱动设计(转)

领域驱动设计

zuoc 1548

【DDD 6】领域驱动设计实践 —— 业务建模战术

【DDD】领域驱动设计实践 —— 业务建模战术 目录 【DDD】领域驱动设计实践 —— 业务建模战术 1. 用一句话描述业务场景 2. 小步快跑,不断迭代 3. 短而高效的讨论很重要 4. 将你的建模思考过程写下来 5. 先从复杂的业务case开始建模 6. 用业务术语代替技术术语   正文   本文结合团队在COMMUNITY(社区服务系统)业务建模过程中的实践经验,总...

zhuiqiuuuu的博客 542

DDD领域驱动设计

一. 什么是DDD 2004年Eric Evans 发表Domain-Driven Design –Tackling Complexity in the Heart of Software (领域驱动设计),简称Evans DDD。Evans DDD是一套综合软件系统分析和设计的面向对象建模方法。 领域驱动设计分为两个阶段: 1.以一种领域专家、设计人员、开发人员都能理解的通用语言作为相互...

zhoxing 1万+
上一篇: 5 领域驱动设计 仓库
下一篇: 7 领域驱动设计 不明显概念建模
dabusidede
博客等级 码龄9年 84粉丝 208原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值