
● 架构设计
文章平均质量分 80
「已注销」
战斗意志!
展开
-
MVC架构
1、MVC简介 MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,最早为Trygve Reenskaug 提出,为施乐帕罗奥多研究中心(Xerox PARC)的Smalltalk语言发明的一种软件设计模式。 MVC结构是位那些需要为同样的数据提供多个视图的应用程序而设计的,通过把职责、性质相近的成分归结在一起,不相近的进行隔离,把软原创 2015-12-30 11:31:29 · 1856 阅读 · 6 评论 -
用例图、类图中有哪些关系
用例图中的关系有关联(Association)、泛化(Generalization)、包含(Include)、扩展(Extend)。类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization), 关联(Association), 聚合(Aggregation), 组合(Composition), 依赖(Dependency)。UML的四种原创 2015-08-29 10:42:33 · 4851 阅读 · 16 评论 -
UML基础
1.什么是UML? UML全称Unified Modeling Languae(统一建模语言),是一种面向对象的用来设计软件蓝图的可视化建模语言,UML语言的运用在软件的开发阶段,提供了描述软件系统模型的概念和图形表示法,能够准确方便的表达面向对象的概念。建立各种所需的文档,是一种定义良好、易于表达、功能强大且普遍使用的建模语言的。 UML有三大结构,其中1原创 2015-08-25 16:25:21 · 1380 阅读 · 22 评论 -
抽象工厂模式
抽象工厂模式为创建一组对象提供了一种解决方案。与工厂方法模式相比,抽象工厂模式中的具体工厂不只是创建一种产品,它负责创建一个产品族。抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,其属于对象创建型模式。 抽象工厂模式中包含四个角色:抽象工厂用于声明生成抽象产品的方法;具体工厂实现了抽象工厂声明的生成抽象产品的方法,生成一组具体产品原创 2016-05-09 18:47:23 · 1653 阅读 · 4 评论 -
迭代器模式
1、什么是迭代器呢? 迭代器是一种取出元素的方式,也就是遍历某一元素集合内元素的方式。我们平常对于数组的遍历方式是通过下角标利用for循环等来操作数据,元素集合不止数组一种,例如还有ArrayList(底层为数组)、LinkedList(底层为链表)、HashSet(使用hash表)等,每一个集合内部的存储结构都是不同的,所以每一个集合存和取都是不一样,那么针对这些集合遍历就要分别使用对应的原创 2016-05-10 00:15:58 · 1858 阅读 · 2 评论 -
命令模式
1、什么是命令模式? 命令模式(Commond Pattern):将来自客户端的请求封装为一个对象,无需了解这个请求激活的动作或有关接受这个请求的处理细节。命令模式的根本目的在于将“请求者”与“实现者”之间解耦。 其实命令模式和其他许多设计模式一样,就是在请求者和实现者中间加一个中间人的角色,来达到解除耦合的目的。通过对中间人的特殊设置,从而形成不同的设计模式,命令模式也不例外原创 2016-05-22 21:13:46 · 835 阅读 · 4 评论 -
享元模式
1、什么是享元模式? 享元模式(Flyweight Pattern):以共享的方式高效的支持大量的细粒度对象。通过复用内存中已存在的对象,降低系统创建对象实例的性能消耗。 享元的英文是Flyweight,是一个来自体育方面的专业用语,在拳击、摔跤和举重比赛中特指最轻量的级别。把这个单词移植到软件工程中,也是用来表示特别小的对象,即细粒度的对象。至于为什么把Flyweight翻译原创 2016-05-23 00:10:08 · 2570 阅读 · 6 评论 -
动态代理
1、什么是动态代理? 动态代理就是在运行时生成一个类,这个类会实现你指定的一组接口,而这个类没有.java文件,是在运行时生成的,你也不用去关心它是什么类型的,你只需要知道它实现了哪些接口即可。 平常实现一个接口需要写一个具体的实现类,而动态代理技术能够在运行期间动态的生成实现指定接口的实现类对象,底层使用的反射原理。在框架中经常使用,例如:Struts1、Struts2、原创 2016-06-05 00:47:01 · 797 阅读 · 6 评论 -
动态代理解决网站字符集编码
1、首先看一个装饰模式解决字符集编码问题 我们使用装饰者对request进行增强,从而使得get和post使用request.getParameter()获得的数据没有乱码: 首先来一个Servlet,用于处理客户端请求:package 装饰者模式解决乱码;import java.io.IOException;import javax.servlet.ServletE原创 2016-06-05 01:04:41 · 1064 阅读 · 5 评论 -
UML——用例图详解
定义:根据用户提出的需求描述系统的行为及各种功能之间的关系。个人理解:用例图是从用户角度描述系统功能,通过用例图可以知道一个系统能够做什么,它要实现什么功能。用例图用于开发人员与用户之间的交流,以便开发人员很好的理解用户需求。用例图的基本组成元素:【组成】:用例图=参与者+用例+关系参与者:参与者是用例的启动者,参与者可能是人或其他外界系统。用例:一系列可完成系统功能的原创 2015-08-29 11:37:34 · 6733 阅读 · 16 评论 -
UML--类图详解
类图(Class diagram)定义:类图用于描述系统中所包含的类以及它们之间的相互关系,帮助人们简化对系统的理解,它是系统分析和设计阶段的重要产物,也是系统编码和测试的重要模型依据。用来定义系统中的类,包括描述类的结构和类之间的关系。类图的主要作用于描述系统的静态结构。个人理解:在UML的静态机制中类图是一个重点,它不但是设计人员关心的核心,更是实现人员关注的核心。建模工具也主要原创 2015-08-29 16:43:10 · 1991 阅读 · 15 评论 -
设计模式概述
1、什么是设计模式? 设计模式这个词是首先出现在建筑行业的,是因为在20世纪70年代,Christopher Alexander发现许多建筑非常类似,然后想是不是用同一图纸能够在不同的地点建造出相类似的建筑,之后他发表了很多关于工程和建筑模式方面的书籍。于是,软件行业逐渐接纳了这种最初建立于工程和建筑方面的模式思想,发展出了软件业中的设计模式,软件业中模式概念的普及是由GoF合著的书引发的。原创 2015-10-20 11:08:49 · 988 阅读 · 9 评论 -
BS架构和CS架构的优缺点
1、CS、BS架构定义 CS(Client/Server):客户端----服务器结构。C/S结构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。因为客户端要负责绝大多数的业务逻辑和UI展示,又称为胖客户端。它充分利用两端硬件,将任务分配到Client 和Server两端,降低了系统的通讯开销。C/S结构的软件需要针对不同的操作系原创 2015-12-24 09:46:48 · 130741 阅读 · 12 评论 -
机房重构之--七层架构
经过软件工程的洗礼,秉承着软件“高内聚、低耦合”的开发原则,对机房系统设计要尽量达到解耦、易维护、易扩展的目的,对系统结构设计为如下七层: 分这么多层是实现软件灵活性的必须要求,但是这些层的作用都是什么呢? (1)UI(User Interface):表示层,负责与用户进行交互,显示、接受数据,也做一些简单逻辑处理,如:输入数据有效性判断、显示各种异常、处理Dataset(内存原创 2015-11-09 08:03:13 · 2497 阅读 · 23 评论 -
设计模式之--依赖倒置原则
依赖倒置原则所谓依赖倒置原则,就是不论工厂还是产品都应该依赖于抽象,而不是具体实现类。听起来更像是“针对接口编程,而不是针对实现编程”,但是这里依赖倒置原则更强调“抽象”的概念,不要让高层组件依赖低层组件,更不能依赖具体实现类,都要依赖于抽象。依赖倒置原则的核心在于“面向接口编程”,目的在于”解耦“。这里的倒置是什么意思呢?依赖倒置原则中的倒置是指我们的思想要和一般的“自顶向下”结构化设计原创 2015-11-01 09:13:42 · 3967 阅读 · 4 评论 -
三层架构
1、什么是三层架构? 三层分别为数据访问层(DAL)、业务逻辑层(BLL)、表示层(UI)。在三层架构中将用户接口,商业逻辑,数据保存以及数据访问设计为三个独立的模块,使得每个层可以被单独开发,单独测试,而不影响其它层。也就是说,分层的核心目的是满足开发过程中的“高内聚、低耦合”原则。 值得注意的是,这里的三层是指逻辑上的三层,也不仅仅有B/S应用才是三层体系结构。下面是三层的结构原创 2015-10-31 08:38:06 · 10556 阅读 · 6 评论 -
设计模式之--模板方法模式
1、什么是模板方法模式? 官方解释:定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 设计模式大咖闫宏解释:模板方法模式是类的行为型模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑原创 2015-10-23 16:51:06 · 1711 阅读 · 12 评论 -
设计模式之--装饰模式
1、写在前面:为什么会有装饰模式? 装饰模式是为了解决继承强依赖性和出现大量子类不方便管理问题而出现的。 举例:大家都有自己的手机,而打电话时手机必须具备的基本功能。如果用代码实现的话,按照正常做法,我们首先定义手机类,具有打电话功能。但是随着发展,需求变化了,假设现在部分人们要求打电话要有彩铃,接下来如何设计? 我们利用以前学过的继承,新建彩铃手机类继承手机类可以具备父类的打电原创 2015-10-22 10:56:44 · 1153 阅读 · 10 评论 -
设计模式之--单例模式
1、什么是单例模式? 单例模式也属于创建型模式,所以也是用于创建对象的,顾名思义,“例”是“实例”的意思,“单”是“单独、唯一”的意思,所以单例模式就是指使类在内存中只能有一个对象的模式。2、单例模式的应用? 单例模式在线程池、数据库连接池、网站计数器等其他地方中被应用,因为每次创建线程和数据库连接是相对而言比较麻烦的,所以我们可以只创建一次,然后对其进行重复使用,当被使用完毕之后原创 2015-10-21 16:34:44 · 2545 阅读 · 7 评论 -
设计模式之--工厂方法模式
在上一篇《设计模式之--简单工厂模式》中,遗留了一个问题:如果我们还要创建鱼的对象,那么我就要去添加鱼这个类,然后去更改工厂类,添加创建鱼的对象的方法,那么,这样就违背了面向对象的设计原则:开闭原则(对修改关闭,对扩展开放)。那么,怎么才能添加了新类 iu,又不用去修改代码呢?原创 2015-10-21 08:23:38 · 1322 阅读 · 11 评论 -
设计模式之--简单工厂模式
简单工厂模式属于创建型模式,所以是关于创建对象的,举例说明: 需求:创建动物中的猫、狗对象。 首先绘制简单工厂模式的类图: 下面进行代码实现,通过一般方法和应用简单工厂模式方法的代码进行对比,研究简单工厂方法的实际应用与意义: 1、按照一般方法创建猫、狗对象://主类public class AnimalTest { public static void ma原创 2015-10-20 15:14:27 · 1253 阅读 · 11 评论 -
Redis
提到redis,首先要谈一下noSQL。1、什么是noSQL? NoSQL,泛指非关系型的数据库,NoSQL即Not-Only SQL,它可以作为关系型数据库的良好补充。传统关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如: (1)High performance - 对数据原创 2016-08-26 23:55:32 · 1280 阅读 · 12 评论