随笔分类 - 设计模式
1
摘要:
前期我们针对架构准备阶段及需求分析这块我们写了2篇内容《HRMS(人力资源管理系统)-从单机应用到SaaS应用-架构分析(功能性、非功能性、关键约束)-上篇》《HRMS(人力资源管理系统)-从单机应用到SaaS应用-架构分析(功能性、非功能性、关键约束)-下篇》内容来展开说明。
本篇主将详细的阐述架构设计过程中概要架构设计要点来和大家共同交流,掌握后续如何强化概要架构设计在架构设计中作用,帮助我们快速确认架构的方向及核心大框架。
阅读全文

摘要:
上一篇《HRMS(人力资源管理系统)-从单机应用到SaaS应用-架构分析(功能性、非功能性、关键约束)-上篇》我们详细分析了在架构分析过程中我们需要注意的内容,架构过程的方法论及实践经验,以更好的指导我们在具体架构落地。
本篇主将具体结合HRMS系统进行架构概要分析,按照上篇的理论指导,开展具体的架构分析过程实践,通过分析找到关键功能、关键非功能性需求(关键质量及约束)等。
阅读全文

摘要:上一篇《HRMS(人力资源管理系统)-从单机应用到SaaS应用-系统介绍》我们已经详细的分析了HRMS系统具备的功能,并且从HRMS系统的概念、系统功能、HR行业管理现状及痛点、发展趋势及行业前景、行业内的服务提供商情况、HRMS系统的建设意义及价值等方面进行了系统化的分析梳理。我想大家已经对于HRMS系统的大体情况有了初步的了解,本篇将对HRMS系统的需求进行全方位的梳理(功能性需求、非功能性需求、系统约束等),这对于HRMS系统的架构设计来说是核心关键,是架构能否成功的前提。这也是衡量一个架构师是否称职合格的关键。本篇主要想通过HRMS系统与大家分享下架构设计环节中非常重要的基础环节-架构准备-的关键工作内容,请大家务必该环节的工作内容,这是所有成功架构设计的前提,为能够系统的阐述清晰该领域的注意事项及工作方法,所以篇幅会较长,请大家细细看完,如果有阐述不清晰或遗漏的地方,还请大家指出。
阅读全文
摘要:
博客园首页是需要分享干货的地方,今天早上写的《HRMS(人力资源管理系统)-从单机应用到SaaS应用-系统介绍》内容下架了,所以我就按照相关规定,只分享干货,我把之前写完的架构设计相关知识的内容整理发布上来。这次主要分享一下在架构设计过程中涉及的基础知识,主要是涵盖系统架构方法、架构模式及设计模式,便于大家在后续一起探讨HRMS系统的SaaS模式的架构设计。
阅读全文

摘要:
上周发布的《2018,全新出发(全力推动实现住有所居》文章,其中记录了个人在这5年过程中的成长和收获,有幸认识了不少博客园的朋友,大家一起学习交流,在这个过程当中好多朋友提出SaaS系统如何设计,架构方面如何下手,在这5年的过程中我参与规划设计了很多的SaaS系统其中有不少的坑和痛苦的经验,特别是在架构设计方案,所以想把自己的经验分享出来,我思来想去如何能够完整呈现设计的过程呢?后来思索来着,还是通过实例干货来讲解会更有效。就想通过一个小系列呈现出我这边在架构设计时思考的问题和过程,供大家参考,欢迎大家一起交流,互相学习,共同进步。
阅读全文

摘要:
系统架构的文章系列,也是搁浅的太久了,最近也是整理了下思路,将目前未完成的内容,写完吧,也不能拖太久,就不太好了。所以就趁周末写一下,今天我
们要说的是单机应用,单击应用软件可以很复杂,也可以很简单。有些单机软件可以没有数据库,也可以有数据库,比如我们平时的一些工具类的软件,写字板,V
S开发工具等
阅读全文

摘要:一、开篇 上一篇我们讲述了结构型模式中的代理模式。本篇,我们将会开始讲述行为型模式中的命令模式,在设计模式的这些基本的模式完成后,我将会将一 些经常用的其他的一些扩展的模式进行讲解,希望能够引起大家的共鸣。 我们先来看看命令模式的定义吧: 命令模式是将一类对象的功能操作进行抽象,一般来说,这些对象有相同的方法,所以这类对象有着类似的操作,我们通过抽象,就可以定义...
阅读全文
摘要:一、上篇回顾 很久没有更新设计模式系列的文章了,有了很多热心朋友的反馈,我决定继续将这个系列赶快写完,最近由于过年了,有很多相关的事宜要做,所以没有时间来写,也是对大家的说下抱歉,感觉写文章的时间越来越少了,不过我会努力,尽快将这个系列写完,与大家共勉,希望大家有什么意见或建议,都可以帮我提出来,我好改进,谢谢!。 本文主要是讲述设计模式中的结构性模式中的最后一个本系列讲述的模式,也是经常用到的模式,代理模式,由于目前我们在很多的技术中都会用到这个代理模式,所以对我们来说,代理模式是必须掌握的模式之一。我们先来看看代理的思路及原理: 通过上面的图片,我们可以看到,通过增加代理来解耦A与C之间的
阅读全文
摘要:一、上篇回顾 通过上篇的讲述,我们知道装饰模式,特别适合对某个类型的对象,动态的增加新的职责,应用程序就像使用原来的对象一样使用对象新增的装饰后的功能,装 饰模式就好像是穿了一层层的外壳,这样的方式避免了通过继承来为类型添加新的职责的形式可取,通过继承的方式容易造成子类的膨胀,但是当装饰类太多的时 候,也是个难以维护的问题,至少是在装饰对象的时候,我们可能需要多步操作来完成对象的装饰,这时候我们可以同上面提出的改进的方案,来完成自动配置装饰 模式,记录操作模式的状态,可以进行有效的回滚操作,以完成撤销操作。 我们先来回顾下装饰模式的使用场景: 1、当我们需要为某个现有的对象,动态的增加一个新的
阅读全文
摘要:一、上篇回顾 通过上篇的简单描述,我们知道了桥接模式主要是为了解决,一个对象的多个维度的变化因素的变化太快,难以控制的问题,我们通过将每个维度的变化因素进行抽象, 然后我们的对象只要依赖于抽象即可,具体的实现调用我们不关心,通过对象组合的方式,我们就能组合出我们想要的对象。无疑这是一种非常灵活的也是满足设计模式的原则的,抽象和实现分离,使他们各自发生变化都不受对方的影响。而且我们也讲述了,使用桥接模式的几个典型的场景,现在我们的实际项目中就有这样的问题,我也是在项目的使用过程中加深对桥接模式的理解的,桥接模式为系统在多个维度的变化的适应性方面提供了很好的参考,特别适合底层框架的开发过程中使用,
阅读全文
摘要:一、上篇回顾 上篇我们讲述了比较常用的适配器模式,并且分析了适配器的一般使用场景: 1、我们在使用第三方的类库,或者说第三方的API的时候,我们通过适配器转换来满足现有系统的使用需求。 2、我们的旧系统与新系统进行集成的时候,我们发现旧系统的数据无法满足新系统的需求,那么这个时候,我们可能需要适配器,完成调用需求。 3、我们在使用不同数据库之间进行数据同步。(我这里只是分析的是通过程序来说实现的时...
阅读全文
摘要:一、上篇回顾 通过上篇的简单讲解,我们知道了,组合模式意图是通过整体与局部之间的关系,通过树形结构的形式进行组织复杂对象,屏蔽对象内部的细节,对外展现统一的方式来操作对象,是我们处理更复杂对象的一个手段和方式。本文以查询控件为例,说明了,查询控件内部的组成元素,及如何操作内部的组成元素,包括添加元素,删除和处理相应事件的Handler,当然组合模式的作用远比这些强大,后面我们肯定会在一些实例代码中...
阅读全文
摘要:一、上篇回顾 我们上篇主要讲述了结构型模式中的外观模式,外观模式作为结构型模式中的一个简单又实用的模式,外观模式通过封装细节来提供大粒度的调用,直接的好处就是,封装细节,提供了应用写程序的可维护性和易用性。外观模式一般应用在系统架构的服务层中,当我们是多个不同类型的客户端应用程序时,比如一个系统既可以在通过Web的形式访问,也可以通过客户端应用程序的形式时,可能通过外观模式来提供远程服务,让应用程...
阅读全文
摘要:一、上篇回顾上篇我们主要讲述了创建型模式中的最后一个模式-原型模式,我们主要讲述了原型模式的几类实现方案,和原型模式的应用的场景和特点,原型模式适合在哪些场景下使用呢?我们先来回顾一下我们上篇讲述的3个常用的场景。 1、我们在运行态的时候,动态的创建一个动态类型的对象的时候,可能我们使用原型模式,可以动态的创建指定类型的副本,这无疑是好的选择,否则如果通过我们前面讲述的几个创建型模式来实现的话,效...
阅读全文
摘要:一、上篇回顾 上篇创建者模式中,我们主要讲述了创建者的几类实现方案,和创建者模式的应用的场景和特点,创建者模式适合创建复杂的对象,并且这些对象的每个组成部分的详细创建步骤可以是动态的变化的,但是每个对象的组装的过程来说可能是相对固定的或者说是对象的创建的过程是固定的,那么通过创建者模式可以很好的解决这类复杂对象的创建,而在我们的生活中或者是项目中可能会有这个方面的需求,那么使用创建者模式无疑是好的...
阅读全文
摘要:一、上篇回顾 上篇我们主要讲述了抽象工厂模式和工厂模式。并且分析了该模式的应用场景和一些优缺点,并且给出了一些实现的思路和方案,我们现在来回顾一下: 抽象工厂模式:一个工厂负责所有类型对象的创建,支持无缝的新增新的类型对象的创建。这种情况是通过配置文件来实现的,通过字典映射的方式来实现,不过可能效率上有点低下,可以通过优化的方式来做,上篇中我们也给出了委托的工厂实现形式,相比之前的简单工厂模式和工...
阅读全文
摘要:一、上篇回顾 上篇我们主要讲述了简单工厂模式和工厂模式。并且分析了每种模式的应用场景和一些优缺点,我们现在来回顾一下: 简单工厂模式:一个工厂负责所有类型对象的创建,不支持无缝的新增新的类型对象的创建。 工厂模式:多个工厂负责多个类型对象的创建,每个工厂只负责具体类型对象的创建,支持无缝的新增类型对象的创建,需要实现工厂接口类和具体的类型对象类。 我们来简单的对比下这2个模式的优缺点:模式名称优点...
阅读全文
摘要:一、开篇 一个多月没有写文章了,一方面是由于家庭的原因,还有一方面是因为工作上的原因,所以在这里给大家说抱歉了,这段时间也是有很多热心的朋友,一直询问我,什么时候能把相关的系列文章写完,其实我也特别的想赶快的把相关的文章书写完毕,不过现在真的是有时候力不从心,家庭和工作上的事情需要都处理好,所以属于个人思考的时间可能就会相对的少一些了,不过我会继续努力,出时间来把下面的这几个系列写完: 1、系统架...
阅读全文
摘要:园子里面有太多优秀的设计模式文章了,但是可能每个人的出发角度和关注点不同,可能会对每个模式理解的角度和切面不同,我想以我自己理解的方式来跟大家共同探讨下常用的设计模式,并且我会结合工作中的开发实际场景来说明每个模式的用法和特点,希望能对大家有所帮助,当然这些内容都是个人在实际项目中的总结和实践,错误或者理解有误之处,还请大家多多指正,多谢大家前来交流! 创建型 1、设计模式系列-单件模式 2、设计...
阅读全文
摘要:一、开篇 其实我本来不是打算把系统架构中的一些设计模式单独抽出来讲解的,因为很多的好朋友也比较关注这方面的内容,所以我想通过我理解及平时项目中应用到的一些常见的设计模式,拿出来给大家做个简单讲解,我这里只是抛砖引玉,如果某个地方讲解的不正确或者不详细,请大家批评指出。园子里面的很多的大牛写的设计模式都非常的经典,我这里写可能有点班门弄斧的感觉,不过我还是决定把它写出来,希望能对初学者有一定的帮助和...
阅读全文
1