环境-运维必备 03.配置虚拟机网络 04.安装Docker 05.Docker安装mysql 06.Docker安装redis 07.本地开发环境配置 08.配置Git 09.初始化项目和添加微服务 10 .PassJava-微服务划分图 11.初始化数据库和表 12.搭建管理后台 PassJava 初始化数据库表 用PowerDisigner工具创建数据库 用PowerDisigner工具创建数据库 ?
文章目录 一、划分 二、划分示例 三、划分与等价关系定理 一、划分 ---- 划分 : 非空集合 A , A \not= \varnothing , A 集合的一个 划分 是 集族 \mathscr 包含于 A 集合的幂集 , \mathscr{A} \subseteq P(A) , 集族中的元素都属于 A 集合的幂集 ; 集族 \mathscr{A} 中的元素是 集合 , 称为 划分块 } 有以下性质 : ① \mathscr{A} 集族中每个元素都非空 \varnothing \not\in \mathscr{A} ② \mathscr{A} 集族中任意两个元素 ( 划分块 集族中包含 A_i 集合及其补集 \sim A_i , 该集族 \mathscr{A}_i 满足上述划分的三个性质 , 是一个划分 ; 2. A/R 是 A 的划分 ; R 是 A 上等价关系 \Rightarrow A/R 是 A 的划分 集族 \mathscr{A} 是 A 集合上的划分 , 定义一个 二元关系 是 同块关系
前言 在软件开发的世界里,设计模式如同一本精妙的编码诗集,已经成为一种标准的编程实践。在Java编程中,设计模式很重要。 本人将制作一个关于Java设计模式的系列文章,总共23种设计模式将以一篇一篇文章讲解,代码笔记已开源:Gitee点击跳转。在上一篇《Java设计模式(9)享元模式》文章中,我们介绍了享元模式。 本文是这个系列的第十篇章,我们将讲解一下代理模式的实现方式、应用场景以及它的用途。 代理模式 在代理模式中,一个类代表另一个类的功能,这种类型的设计模式属于结构型模式。 代理模式通过引入一个代理对象来控制对原对象的访问。代理对象在客户端和目标对象之间充当中介,负责将客户端的请求转发给目标对象,同时可以在转发请求前后进行额外的处理。 代理模式又有两种主要形式: 静态代理:在编译时就已经确定了代理类和被代理类之间的关系,通常需要为每个被代理类都编写一个对应的代理类,并实现相同的接口。
1.定义 组合模式是一种结构型模型,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。 这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。 上回说到刘备被设计入赘江东后,通过诸葛孔明的锦囊妙计成功化险为夷。回到荆州后刘备一心想匡扶汉室,于是准备继续招兵买马。 如此看来这种层次结构不就是我们说的组合模式要实现的内容吗? 相似的对象当成单一对象,部门和人员都具备组织树的特性即部门下可能是人员也有可能存在子部门信息。同时都具备基础信息,比如名字等。 2.组合模式实现 OrganizationalStructure抽象类表示组织结构,其中由于部门和人员信息都属于组织结构具有相似,所以部门和人员信息都是他的子类。 参考文献《图解设计模式》 代码获取地址:https://gitee.com/bughong/design-pattern
解释器模式第一遍没有读懂,看到后面说实际项目中很少用到,因为它会引起效率、性能以及维护等问题,会直接用已有的成熟的工具。 又看了一遍有点明白了,有点类似写算法题遇到的情况,又有点编译原理里面的味道。 这《设计模式之禅》虽然没有技术过期的问题,但买了纸书,现在还是在看电子版的,在公司也不适合看纸书,而且属于看完记录完也不想再看的书。 以后凡是不需要阅读多遍的书,都不要花钱去买纸书。 享元模式 池中共享对象,减少对象创建,减小 OOM 机率。 比如 Android 从 xml 构建 View 时的构造器。Map 保存对象,有就拿出来用,没有再创建存到 Map 中去。 虽然可以使用享元模式可以实现对象池,但是这两者还是有比较大的差异,对象池着重在对象的复用上,池中的每个对象是可替换的,从同一个池中获得 A对象和 B 对象对客户端来说是完全相同的,它主要解决复用,而享元模式在主要解决的对象的共享问题
组合模式属于对象的结构模式,有时又叫做“部分——整体”模式。 组合模式将对象组织到树结构中,可以用来描述整体与部分的关系。组合模式可以使客户端将单纯元素与复合元素同等看待。 二、组合模式-安全式 1、基础概念 安全式的组合模式要求管理聚集的方法只出现在树枝构件类中,而不出现在树叶构件类中。 在安全式的组合模式里,构件角色并不定义出管理子对象的方法,这一定义由树枝构件对象给出。 树叶构件(Leaf)角色 树叶对象是没有下级子对象的对象,定义出参加组合的原始对象的行为。 -透明式 1、概念图解 与安全式的组合模式不同的是,透明式的组合模式要求所有的具体构件类,不论树枝构件还是树叶构件,均符合一个固定接口。
观察者模式又叫发布订阅模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时会通知所有观察者对象,使它们能够自动更新自己。 观察者模式 观察者模式又叫发布订阅模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时会通知所有观察者对象,使它们能够自动更新自己。 参考: design-patterns.readthedocs |观察者模式 refactoringguru | 观察者模式 博客园 | 简说设计模式——观察者模式 CSDN | 设计模式 ( 十五 ) 需要在系统中创建一个触发链,A对象的行为将影响B对象,B对象的行为将影响C对象……,可以使用观察者模式创建一种链式触发机制 实例: MVC模式是一种架构模式,它包含三个角色:模型(Model),视图( 观察者模式可以用来实现MVC模式,观察者模式中的观察目标就是MVC模式中的模型(Model),而观察者就是MVC中的视图(View),控制器(Controller)充当两者之间的中介者(Mediator
” 责任链模式优点显而易见,降低了请求对象与处理对像之间的耦合度,处理对象易于扩展,增强了指派处理对象的灵活性。 责任链简化了对象之间的连接。 链式结构 责任链模式主要由3个要素组成: 抽象处理者(Handler)角色:定义一个处理请求的接口,包含抽象处理方法和一个后继连接。 关于对责任链模式的看法 那么我们什么时候合适使用责任链模式呢? 一般如果由多个对象处理一个请求,需要使用哪对象由实际调用的时候确定。这种场景我们就可以使用调用者模式。 大家可以思考下这方面能不能使用责任链模式呢。 还有在订单系统中,订单状态的处理是否可以使用此种设计模式更为优秀呢。 所以使用责任链模式需要控制链路长度。比如在Handler中设置最大节点数量。如果节点数量超出这个最大数量,就不允许该链路的创立。
策略模式 基本介绍 1)策略模式(StrategyPattern)中,定义算法族(策略组),分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户 2)这算法体现了几个设计原则, 说明:从上图可以看到,客户context有成员变量strategy或者其他的策略接口,至于需要使用到哪个策略,我们可以在构造器中指定 策略模式优化IF else 类图 使用策略模式+工厂+模板方法 解决多分类查询 本来我想在其中加入状态模式, 用于控制是根据一些参数, 来决定查询DB还是查询缓存, 但是后来应为一些场景是缓存实现不了的, 只能查DB了, 但是一些公用数据还是查询缓存的, 后续如果需要扩展其他查询, PressureVo> addIsOnline(List<Pressure> records, List<String> deptCodes) { // 业务逻辑 } } 策略模式的注意事项和细节 1)策略模式的关键是:分析项目中变化部分与不变部分 2)策略模式的核心思想是:多用组合/聚合少用继承;用行为类组合,而不是行为的继承。
本节介绍如何给复杂的聚合型数据结构提供一个遍历方法的设计模式——迭代器模式(Iterator Pattern)。 迭代器模式的关键思想是将对列表的访问和便利从列表对象中分离出来,放入一个独立的迭代器对象中。迭代器类定义了访问该列表元素的接口。 迭代器模式能够提供一种方法按照顺序访问一个聚合对象中的所有元素,而又不需要暴露该对象的内部表示。 迭代器模式的结构图如图所示。 ? 迭代器模式的各组成部分及含义说明如下。 迭代器模式的优点如下。 迭代器模式支持以不同的方式遍历同一聚合,复杂的聚合可以用多种方式进行遍历。例如二叉树遍历方法有 4 种:先序遍历、中序遍历、后序遍历和层次遍历。 class ConcreteAggregate(Aggregate): def __init__(self): self.data_structure = list(range(10
划分stage源码剖析 本文基于Spark 1.3.1 先上一些stage相关的知识点: DAGScheduler将Job分解成具有前后依赖关系的多个stage DAGScheduler是根据ShuffleDependency 划分stage的 stage分为ShuffleMapStage和ResultStage;一个Job中包含一个ResultStage及多个ShuffleMapStage 一个stage包含多个tasks, finalRDD的partition数 一个stage中的task完全相同,ShuffleMapStage包含的都是ShuffleMapTask;ResultStage包含的都是ResultTask 下图为整个划分 = getParentStages(rdd, jobId) val id = nextStageId.getAndIncrement() //< 这个调用确定了每个stage的id,划分 整个stage的划分完成。
设计模式系列:http://aphysia.cn/categories/designpattern 开局还是那种图,各位客官往下看... 享元模式是什么? 享元模式(FlyWeight),是结构型模式的一种,主要是为了减少创建对象的数量,减少内存占用以及提高性能。 但是如果所有的内部属性都是不可修改的,貌似也不是十分灵活,因此为了在稳定和灵活性之间找到平衡点,一般的享元对象,都会将内部属性划分为两大类: 内部状态:不可变,且在多个地方中共享,重复使用的部分,只能通过构造函数设值 外部状态:每个对象,在不同场景下,可能存在不一样的状态,可以修改 单纯享元模式:在单纯享元模式中,所有的具体享元类都是可以共享的,不存在非共享具体享元类。 复合享元模式:将一些单纯享元对象使用组合模式加以组合,还可以形成复合享元对象,这样的复合享元对象本身不能共享,但是它们可以分解成单纯享元对象,而后者则可以共享 这里我们说的是单纯享元模式,享元模式一般会有几种对象
电磁波频段的划分 射频(300KHz-300MHz):包括LF,MF,HF,VHF 微波(300MHz-3000GHz):包括UHF,SHF,EHF,PHF 微波频段的划分 波段 频率范围
装饰器模式 装饰器模式的定义: 动态的给一个对象添加额外的职责,就功能来说,装饰模式相比子类更为灵活 装饰器模式的四个角色: Componment 抽象构建角色:该角色用于规范需要装饰的对象 ConcreateComponment 该角色是需要被装饰地 对象 Decorator: 装饰角色:一般是一个抽象类,该角色持有私有的一个抽象构件对象 ConcreateDecorator: 具体装饰角色;感觉主要负责对构件对象进行装饰 装饰器模式的简单示例 componment); componment = new ConcreateDecorator(componment); componment.doingProcedureA(); } } 装饰器模式的优点和使用范围 装饰器模式的优点: 装饰类和被装饰类可以独立发展,而不会相互耦合 装饰模式是继承关系的一种替代方案 装饰模式可以动态的扩展一个实现类的功能 装饰器模式的应用场景: 用于扩展一个类的功能,或者给一个类添加附加职责 动态的给一个对象天机功能,这些功能可以被动态的撤销 需要位一批的兄弟类进行改装或加装功能 装饰器模式的缺点: 多层的装饰较为复杂
@toc 命令模式 咱也没读过什么书,看网上的命令模式讲的那叫个花里胡哨,看来看去,我接收到的讯息如下: 命令请求者 命令调用者 命令储存 命令回撤 这是什么?这,我直接想到了消息队列好吧。 看一下命令模式的使用场景: 当系统需要将请求调用者与请求接收者解耦时,命令模式使得调用者和接收者不直接交互。 当系统需要随机请求命令或经常增加或删除命令时,命令模式比较方便实现这些功能。 系统需要执行一组操作时,命令模式可以定义宏命令来实现该功能。 当系统需要支持命令的撤销(Undo)操作和恢复(Redo)操作时,可以将命令对象存储起来,采用备忘录模式来实现。
Part1享元模式是什么? 享元模式(FlyWeight),是结构型模式的一种,主要是为了减少创建对象的数量,减少内存占用以及提高性能。 但是如果所有的内部属性都是不可修改的,貌似也不是十分灵活,因此为了在稳定和灵活性之间找到平衡点,一般的享元对象,都会将内部属性划分为两大类: 内部状态:不可变,且在多个地方中共享,重复使用的部分,只能通过构造函数设值 外部状态:每个对象,在不同场景下,可能存在不一样的状态,可以修改 单纯享元模式:在单纯享元模式中,所有的具体享元类都是可以共享的,不存在非共享具体享元类。 复合享元模式:将一些单纯享元对象使用组合模式加以组合,还可以形成复合享元对象,这样的复合享元对象本身不能共享,但是它们可以分解成单纯享元对象,而后者则可以共享 这里我们说的是单纯享元模式,享元模式一般会有几种对象 Part3总结 优点:如果有很多相似或者重复的对象,使用享元模式,可以节省空间 缺点:如果重用很多,不同地方还做了特殊化处理,代码复杂度增加 设计模式其实是在软件工程的不断摸索中,总结出来的常用的一种设计思路
1 什么是组合模式 组合模式允许创建具有属性的对象,这些对象是原始项目或对象集合。集合中的每个项目本身可以容纳其他集合,创建深度嵌套结构。 树型控件是复合模式的一个完美例子。 组合模式用于简单化,一致化对单组件和复合组件的使用,其实它就是一棵树。 在存在着某种的层次结构,并且其中的一部分要实现某些操作,即可使用组合模式。 组合模式中的所有节点都共享一组通用的属性和方法,它既支持单个对象,也支持对象集合。 2 操作系统目录结构、公司部门组织架构、国家省市县等,像这么看起来复杂的现象,都可以使用组合模式,即部分-整体模式来操作。 2 主要参与者 ? 不过组合模式的弱点也在于此,如果层次过多,则性能将受到影响。组合模式应用需要符合两个条件,一是产生递归,二是具有相同的动作。
前言 这段时间在研究自然语言处理的相关问题,主要是学习如划分数据,尝试过利用机器学习中的相关知识建立模型对数据进行评分后加以划分,但是由于语料库的不足导致训练出的模型对数据的区分度不够,另一方面也是因为部分数据比较 后来尝试过调用百度的词法分析,利用百度平台现成的技术对数据做初步处理,然后再进一步处理,这样会大大降低数据划分的难度。 经过一番思考决定建立一套自己的数据划分流程,写下这篇博客用以记录。 获取AB合格率分界线 依据每条数据的长度划分 分别获取不同长度的数据的AB评分分界线 优化 优化特征词汇的等级划分和评分 优化数据长度的划分 确定分界线 ---- 数据分词 数据分词, 不断细化特征数据的等级划分,提取前500个高频词汇分5个等级。
内聚,是从功能角度来衡量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系;
小谈设计模式(10)—原型模式 专栏介绍 主要对目前市面上常见的23种设计模式进行逐一分析和总结,希望有兴趣的小伙伴们可以看一下,会持续更新的。 原型模式 这是一种创建型设计模式,它允许通过复制现有对象来创建新对象,而无需通过实例化类来创建。它通过克隆现有对象的属性和方法来创建新对象,从而避免了创建对象时的重复工作。 原型模式可以有效地提高对象的创建效率,并使对象的创建过程更加灵活和可扩展。 优缺点分析 优点 简化对象的创建 原型模式通过克隆原型对象来创建新的对象,避免了重复创建对象的过程,提高了对象的创建效率。 提供了一种可替代的对象创建方式 原型模式可以作为一种可替代的对象创建方式,特别适用于创建复杂对象或需要大量初始化的对象。