博客园首页是需要分享干货的地方,今天早上写的《HRMS(人力资源管理系统)-从单机应用到SaaS应用-系统介绍》内容下架了,所以我就按照相关规定,只分享干货,我把之前写完的内容整理发布上来。这次主要分享一下在架构设计过程中涉及的基础知识,主要是涵盖系统架构方法、架构模式及设计模式,便于大家在后续一起探讨HRMS系统的SaaS模式的架构设计。

一、设计模式

大家或多或少的都接触并在实际的开发过程中无形中可能都使用了某种设计模式,可能我们并不知道具体的模式叫什么名字,现在讲设计模式的书、案例分享都有很多,管理理论上的内容我这里就不一一复述,整体来说,设计模式分为3类:创建型、结构型、行为型。常见的有23种设计模式,我之前写过一个系列,我相信大家之前也看过,我这里再贴下链接设计模式-系列索引》,大家感兴趣可以点击查看细节,今天在这里不单独展开设计模式的介绍和说明。

在这里我选取几个实际开发及设计过程中常用的几个设计模式给出理论教程和代码samples:

A、01.C#设计模式-抽象工厂模式  

      PPT-下载      代码Samples下载

B、02.C#设计模式-适配器模式

      PPT-下载      代码Samples下载

C、03.C#设计模式-观察者模式

      PPT-下载      代码Samples下载

D、04.C#设计模式-代理模式

      PPT-下载      代码Samples下载

E、05.C#设计模式-模板方法模式

      PPT-下载      代码Samples下载

F、06.C#设计模式-外观模式

      PPT-下载      

更多内容,请加微信群,我会及时共享到微信群中。

二、系统架构方法

早在2010年始,我便开始筹备并编写了10多篇关于软件架构方面的内容,当时写的深度、理论的完整性及高度,当前来看还差很多,经过这么多年的沉淀,目前我有信心及能力把之前没有写完的系统化的梳理明晰,通过博客的方式呈现出来,在这之前我想还是先把理论的内容给分享出来,便于我们在具体实践的过程中指导具体的设计方法。以便后续更好的推进我们的工作。之前我写过《系统架构师-基础到企业应用架构-系列索引》系列,关于《HRMS(人力资源管理系统)-从单机应用到SaaS应用》系列可以说是架构方法的实践和延续,也请大家持续关注。

A、01系统架构概述

B、02系统架构过程1之架构分析

C、02系统架构过程2之架构分割

D、02系统架构过程3之架构分划

E、02系统架构过程4之非功能目标

F、03系统架构1之层次深入

G、03系统架构2之服务深入(SOA架构)

H、03系统架构3之产品线深入

I、03系统架构4之模式深入

J、04系统架构之六大战术-应对质量属性

K、05系统架构师-十大经验

     (请点击标题下载)

三、架构设计过程实践

理论需要结合实践,才能够真正的掌握架构设计的要领,前面已经在《HRMS(人力资源管理系统)-从单机应用到SaaS应用-系统介绍》开篇中介绍了HRMS系统的行业情况、行业发展趋势及前景、行业内还存在的现状及问题、我们基于这样一个有价值的系统来实践架构设计方式落地。过程中期待大家一起研究交流。

《HRMS(人力资源管理系统)-从单机应用到SaaS应用-架构实践系列》索引

A、HRMS系统介绍

B、系统架构准备阶段(功能性、非功能性、关键约束)

HRMS(人力资源管理系统)-从单机应用到SaaS应用-架构分析(功能性、非功能性、关键约束)-上篇

HRMS(人力资源管理系统)-从单机应用到SaaS应用-架构分析(功能性、非功能性、关键约束)-下篇

C、结合场景分析架构模式(概要架构)

D、确定架构5视图(细化架构)

E、.NET、Java架构落地实践

四、更多的系统架构知识及培训材料

关于更多的系统架构方面的知识,我已建立了交流群,相关资料会第一时间在群里分享,欢迎大家入群互相学习交流:

      微信群:(扫码入群-名额有限)                                               

系统架构-设计模式(适配器、观察者、代理、抽象工厂等)及架构模式(C/S、B/S、分布式、SOA、SaaS)(干货)的更多相关文章

  1. Java设计模式(三) 抽象工厂模式

    原创文章,同步发自作者个人博客,转载请注明出处 http://www.jasongj.com/design_pattern/abstract_factory/ 抽象工厂模式解决的问题 上文<工厂 ...

  2. 设计模式02: Abstract Factory 抽象工厂(创建型模式)

    Abstract Factory 抽象工厂(创建型模式) 常见的对象创建方法:    //创建一个Road对象    Road road=new Road();    new的问题:    -实现依赖 ...

  3. PHP设计模式(三)抽象工厂模式(Abstract Factory)

    一.什么是抽象工厂模式 抽象工厂模式的用意为:给客户端提供一个接口,可以创建多个产品族中的产品对象 ,而且使用抽象工厂模式还要满足以下条件: 系统中有多个产品族,而系统一次只可能消费其中一族产品. 同 ...

  4. .NET设计模式(2):1.2 抽象工厂模式(Abstract Factory)

    概述 抽象工厂模式(Abstract Factory)是所有形态的工厂模式中最为抽象和最具一般性的一种形态.抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式.抽象工厂模式可以向客户端提供一个接口 ...

  5. 设计模式的征途—3.抽象工厂(Abstract Factory)模式

    上一篇的工厂方法模式引入了工厂等级结构,解决了在原来简单工厂模式中工厂类职责太重的原则,但是由于工厂方法模式的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,从而增加系统开销.那么,我们应该 ...

  6. 设计模式的征途—4.抽象工厂(Abstract Factory)模式

    上一篇的工厂方法模式引入了工厂等级结构,解决了在原来简单工厂模式中工厂类职责太重的原则,但是由于工厂方法模式的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,从而增加系统开销.那么,我们应该 ...

  7. Java设计模式学习笔记(四) 抽象工厂模式

    前言 本篇是设计模式学习笔记的其中一篇文章,如对其他模式有兴趣,可从该地址查找设计模式学习笔记汇总地址 1. 抽象工厂模式概述 工厂方法模式通过引入工厂等级结构,解决了简单工厂模式中工厂类职责太重的问 ...

  8. PHP设计模式(三)抽象工厂模式(Abstract Factory For PHP)

    一.什么是抽象工厂模式 抽象工厂模式的用意为:给客户端提供一个接口,可以创建多个产品族中的产品对象 ,而且使用抽象工厂模式还要满足以下条件: 系统中有多个产品族,而系统一次只可能消费其中一族产品. 同 ...

  9. 设计模式(四)抽象工厂模式(Abstract Factory Pattern)

    一.引言 在上一专题中介绍了工厂方法模式,工厂方法模式是为了克服简单工厂模式的缺点而设计出来的,简单工厂模式的工厂类随着产品类的增加需要增加额外的代码,而工厂方法模式每个具体工厂类只完成单个实例的创建 ...

随机推荐

  1. Python学习(十二) —— 面向对象

    一.初识面向对象 面向过程的核心是过程,流水线思维,过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点:极大地降低了写程序的复杂度,只需要顺着要执行的 ...

  2. 068 mapWithState函数的讲解

    1.问题 主要是updateStateByKey的问题 有的值不需要变化的时候,还会再打印出来. 每个批次的数据都会出现,如果向redis保存更新的时候,会把不需要变化的值也更新,这个不是我们需要的, ...

  3. 简单的使用Nginx框架搭建Web服务器~

    系统环境Debian 8,内核版本 一.首先来安装nginx服务程序:  1.安装nginx服务需要的相关程序(记得在root权限下操作下面的指令) aptitude install libpcre3 ...

  4. docker eureka 注册中心 服务提供者通信机制

    docker run -d --name gateway9527 -p 9527:9527  --add-host=eureka7001.com:192.168.1.15    -v /var/jen ...

  5. Jenkins环境搭建(1)-下载与安装

    Jenkins简介 Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,它是一个免费的源代码,可以处理任何类型的构建或持续集成.集成Jenkins可以用于一些测试和部署技术. Jenk ...

  6. linux 进阶命令

    进阶命令 1    df指令   查看磁盘的空间 # df -h    -h表示可读性更高,方便读取 执行指令后(Filesystem:磁盘名称  size:磁盘总大小  Used: 被使用的大小  ...

  7. ubantu中搭建virtualenv+python3.4+flask

    上一篇文章是基于ubantu14.04自带的Python2.7搭建的virtualenv+python+flask(需要特别注意文件夹是中文的问题),今天忙碌了三个小时,在网上大量查阅资料完成了vir ...

  8. 如何生成WebAssembly文件?

    许多3D游戏都是用C/C++语言写的,如果能将C/C++语言编译成JavaScript代码,它们不就能在浏览器里运行了吗?Emscripten的底层是LLVM编译器,Emscripten可以将c/c+ ...

  9. Shell脚本笔记(六)呈现数据

    呈现数据 一.文件描述符 Linux系统将每个对象当做文件处理,这包括输入和输出进程.Linux用文件描述符来标识每个文件对象.每个进程最多可以有9个 文件描述符,bash shell保留了前三个文件 ...

  10. g++ 动态库的编译及使用

    #ifndef __HELLO_H_ #define __HELLO_H_ void print(); #endif #include "hello.h" #include < ...