00:00
Java设计模式之校园模式,我们来看一下。还是用一个需求来引出我们小猿模式的讲解,首先看这样一个需求。我们有一个展示网站项目的需求。现在呢,有一个小型的外包项目,对,然后呢,我们需要给一个A客户做一个产品展示的网站,没问题吧,然后客户A的朋友看了过后呢,觉得诶这个网站做的不错,他也希望呢,做这样一个类似的产品展示网站,但是要求有些不一样。对不对,因为客户A他的这个要求呢,可能是以新闻形式发布的这个。这个产品的介绍,而有些客户呢,他要求以博客的形式来发布,还有一些客户呢,他希望以微信公众号的形式来发布我们这一个。这个项目的介绍好了,那也就是说我们这个网站呢,它可能是新闻形式的,也可能是博客形式的,也可能是微信公众号形式的。
01:07
啊,那么这个时候你怎么解决呢?如果我们站在。如果我们站在一个传统方案的解决思路上来看呢,我们可以这样做,因为你具体的发布形式不一样。但是。你的基本的这个要求是一样的,对吧。基本的要求是一样的,所以说我们最简单方式是直接复制粘贴一份,然后根据客户不同的要求,我们进行一个改进。对,你要以什么形式展展示,我们就用相应的形式给你改一下就可以了,就主要是看到这个展示的形式不一样,我们进行一个定制。那这样子的话呢,我们就要定制修改,第二个我们可以给每一个网站租用一个空间,比如说客户A。A网站的空间在这里,那么现在呢?我们给客户B,给客户B也找一个虚拟空间,给客户C也找一个虚拟空间放上客户C的网站,给客户D找一个虚拟空间放上客户D的网站,说白了就是我们把一份网站复制。
02:15
复制过后呢,放到不同的虚拟空间,然后改进就可以了。其实这个方法呢,是大部分同学会想到的。就是根据你的需求,然后我在原先的代码上改,可是这这种方式带来的问题是什么,我来分析一下。我们觉得呢,有这么几个问题。第一个。因为你需要的这个网站的结构相似度其实是很高的,对不对,只是只是那个外观的形式不一样,或者说展示的形式不一样,而且呢,他们都不是高访问量的网站,如果我们分成多个虚拟空间来看,相当于一个相同的网站实例对象很多,造成了服务器的浪费。因为你本身,你本身原先是是一个,现在变成四个了,变成四个虚拟空间,而且每一个虚拟空间都会占用我们服务器的资源,至少你要画块内存出来啊,至少你要画一块磁盘出来,是不是这样的道理,那么我们这样子呢,对服务器的资源的浪费是比较明显的。
03:19
对,那这个时候我们解决思路可以这样做,整合到一个网站中。共享起相关的代码和数据,因为你有些数据是相同的吗?对,代码它有很多是相同的,那么这样呢,对于我们硬盘、内存、CPU,还有数据空间,服务器资源都可以达到一个共享,也就是说我们能不能达到一个共享的效果,减少服务器资源的浪费。OK,那也就是说对于代码来说,由于是一份实力,维护和扩展都相对更加容易,就是我们达到一个共享,所以说上面的思路呢,我们就可以用什么来解决呢?就是一种新的设计模式,叫做想圆模式来解决。
04:00
这个想源模式其实在我们开发中用的非常的多,大家应该学过,在Java里面用过这个字符串string。OK string string,其实它的底层,它的底层就是用的我们这种想源模式,还有像我们在Java里面用到的这个磁技术词,数据磁的技术,它也是一种想源模式,就是就是达到一种共享。好了,那关于我们这一个就是网站展示项目的一种传统解决方案呢,我们就分析到这里,而且我们也分析出来他的问题,他主要的问题就是说什么呢?因为你这个。当你当你的一个需求相似度很高的时候。对,那么你没有必要,没有必要每个都搞一份独立的实力,或者说都搞一份独立的网站来做,那这样子呢,对服务器浪费很很大,于是我我们就想到用想约模式来解决,那具体来说想约模式是什么?我们下一讲为大家进行讲解。
我来说两句