逗B少年搞程序05 代理模式——名字都是后来补的,幸好没人看
2014-05-03 20:59
253 查看
听说酒神又更新视频了,大五一的还让不让人学习了。诶,好像有什么不对。前天听了师哥们的讲座,除了Eclipse别的都没听过,后来一想,这讲的要是连我都听过,咱们也不会出门就挣一万多啊。
就记得下午听老毕师哥讲的录数据,师哥说不把这么大的数据放到事务中处理,不然会发生出错就一条都进不去的情况。
当时想了想,能不能做一个纠错的功能,就好像百度搜索的时候,打错了一个字母,比如输入的“Objact”,它会提示“您要找的是不是Object”。我们可以将可以约束的字段进行约束,并且这个约束可以在创建系统的时候由用户自己添加修改。
比如,当录数据的时候需要录入学校,学院,专业,我们应该得到“廊坊师范学院,外国语学院,英语”,万一有的同学调皮,录信息的时候录入的是“廊坊吃饭学院,外国话学院,进口挖掘机修理系”(。。。)
这个时候,我们在录入正确的数据之后,可以提示一下,把“廊坊吃饭学院”标记出来,系统提示“您是不是要输入廊坊师范学院”,外国语学院同样进行提示,修改过来之后,提示“外国语学院没有进口挖掘机修理专业,是否修改”如果选的否,再提示“是否创建进口挖掘机修理专业”。
想想貌似有点复杂,概括的说就是,近似的提示修改,不存在的先提示修改再提示创建。好吧,我就听懂了一点,就提这么个小小的意见吧,也不知道会不会采用。
之后还听了师傅说的先功能后智能,我倒是觉得做功能的时候设计一点点简单的智能吧,不过既然师傅说了,那先听着,反正我功能都实现不了就别谈智能了。
好的,这次是学到了代理模式了,貌似有点慢了。
代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。(From 百度百科)
代理?中介?听起来不是很难理解嘛,客户端通过代理调用真正的实体中的方法。
看了大神的解释,这个可以用在游戏中用来加载地图,瞬间我就来了兴趣,怪不得玩游戏的时候看起来很大的地图加载的速度还挺快的。由于大神的代码是Java的,那我给翻译成C#的,这样你们就不能说我是复制的代码。
首先贴上大神博客http://blog.csdn.net/froser/article/details/23611465
附上例子:在一个射击游戏中,前面有个房子,这个房子我们未必会进去。那么,在我们真正进入这个房子之前,这个房子内部是没有必要实例化的,我们只要通过它的外观判断出它是一个房子即可,房子内部的东西,等我们进去再生成来提升效率。
main过程太简单了,只要实例化一个代理类,之后就可以调用方法了。
书上说的没太看懂,就看懂一个远程代理,可以提高加载速度,看来还需要在第二遍看书的时候仔细研究啊。
以上
就记得下午听老毕师哥讲的录数据,师哥说不把这么大的数据放到事务中处理,不然会发生出错就一条都进不去的情况。
当时想了想,能不能做一个纠错的功能,就好像百度搜索的时候,打错了一个字母,比如输入的“Objact”,它会提示“您要找的是不是Object”。我们可以将可以约束的字段进行约束,并且这个约束可以在创建系统的时候由用户自己添加修改。
比如,当录数据的时候需要录入学校,学院,专业,我们应该得到“廊坊师范学院,外国语学院,英语”,万一有的同学调皮,录信息的时候录入的是“廊坊吃饭学院,外国话学院,进口挖掘机修理系”(。。。)
这个时候,我们在录入正确的数据之后,可以提示一下,把“廊坊吃饭学院”标记出来,系统提示“您是不是要输入廊坊师范学院”,外国语学院同样进行提示,修改过来之后,提示“外国语学院没有进口挖掘机修理专业,是否修改”如果选的否,再提示“是否创建进口挖掘机修理专业”。
想想貌似有点复杂,概括的说就是,近似的提示修改,不存在的先提示修改再提示创建。好吧,我就听懂了一点,就提这么个小小的意见吧,也不知道会不会采用。
之后还听了师傅说的先功能后智能,我倒是觉得做功能的时候设计一点点简单的智能吧,不过既然师傅说了,那先听着,反正我功能都实现不了就别谈智能了。
好的,这次是学到了代理模式了,貌似有点慢了。
代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。(From 百度百科)
代理?中介?听起来不是很难理解嘛,客户端通过代理调用真正的实体中的方法。
看了大神的解释,这个可以用在游戏中用来加载地图,瞬间我就来了兴趣,怪不得玩游戏的时候看起来很大的地图加载的速度还挺快的。由于大神的代码是Java的,那我给翻译成C#的,这样你们就不能说我是复制的代码。
首先贴上大神博客http://blog.csdn.net/froser/article/details/23611465
附上例子:在一个射击游戏中,前面有个房子,这个房子我们未必会进去。那么,在我们真正进入这个房子之前,这个房子内部是没有必要实例化的,我们只要通过它的外观判断出它是一个房子即可,房子内部的东西,等我们进去再生成来提升效率。
interface house //房子的接口,又来存放创建房子的抽象方法 { public void Create(); } class LargeHouse : house //房子类,真正的实体 { public void Create() //这里既简单写了。。。 { Console.WriteLine("Building a LargeHouse"); Console.WriteLine("Complete!"); } } class LargeHouseProxy : house //代理类,用代理类来调用LargeHouse的Create方法 { private LargeHouse lh; //在代理类中定义一个被代理的实体 public void Proxy() //实例化 { lh=new LargeHouse(); } public void Create() //这里就可以使用真正实体类中的方法了 { lh.Create(); } }
main过程太简单了,只要实例化一个代理类,之后就可以调用方法了。
书上说的没太看懂,就看懂一个远程代理,可以提高加载速度,看来还需要在第二遍看书的时候仔细研究啊。
以上
相关文章推荐
- Java设计模式圣经连载(05)-代理模式
- 逗B少年搞程序04 策略模式——这次要甩什么技能呢~
- Java程序性能优化 读书笔记(三)设计模式:代理模式
- 【设计模式】05-代理模式
- java 程序性能优化《第二章》设计优化 2.1善用设计模式 2 代理模式
- tensorflow28《TensorFlow实战Google深度学习框架》笔记-10-05 同步更新模式样例程序 code
- 逗B少年搞程序03 简单工厂模式——模式来源于生活而高于生活
- 逗B少年搞程序07 模板方法模式——思路可以相同,但思路不会被复制
- Java设计模式圣经连载(05)-代理模式
- 05、人人都会设计模式:代理模式--Proxy
- 逗B少年搞程序04 装饰模式——又是一波非常规性总结
- 代理模式-Proxy程序替你聊天
- [Java] 动态代理 05 一个成功程序的例子, 改变几句就成了另一个功能
- 程序设计模式(十二) C++ 代理(Proxy)模式
- 代理模式-Proxy程序替你聊天
- [Java] 动态代理 05 一个成功程序的例子, 改变几句就成了另一个功能
- 详解设计模式中的proxy代理模式及在Java程序中的实现
- 从java 反射看延迟加载(代理模式)(四)——反射是否真的会让你的程序性能降低?
- 第5章分布式系统模式 Broker(代理程序)
- 逗B少年搞程序06 原型模式——手动蜡烛