设计模式笔记(12)—享元模式(结构型)

Gof定义运用共享技术有效地支持大量细粒度的对象。 动机采用纯粹对象方案的问题在于大量细粒度的对象会很快充斥在系统中,从而带来很高的运行时代价——主要指内存需求方面的代价。如何在避免大量细粒度对象问题的同时,让外部客户程序仍然能够透明地使用面向对象的方式来进行操作?这需要用到享元模式,不过应用享元模式是需要进行评估的,也就是说在当前情况下是否会对系统造成性能上的影响,如果会那么就是用,下面先...

发布于 技术

设计模式笔记(11)—外观模式(结构型)

Gof定义为子系统中的一组接口提供一个一致的界面,Façade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 先来看个小例子,假设我们需要开发一个坦克模拟系统用于模拟坦克车在各种作战环境中的行为,其中坦克系统由引擎、控制器、车轮、车身等各子系统构成。就会有下面这些类的产生 1234public class Wheel{ }public class Engin...

发布于 技术

设计模式笔记(10)—装饰模式(结构型)

Gof定义动态地给一个对象增加一些额外的职责。就增加功能而言,Decorator模式比生成子类更为灵活。 首先来看一个小例子,假如我们需要给游戏开发一种坦克,除了各种不同型号的坦克外,还希望在不同的场合来给坦克增加以下的一种或多种功能:比如红外线夜视功能、水陆两栖功能、GPS定位功能等。通常做法如下: 123456789101112131415161718192021222324252627...

发布于 技术

设计模式笔记(9)—组合模式(结构型)

Gof定义将对象组合成树形结构以表示“部分–整体”的层次结构。Composite使得用户对单个对象和组合对象使用具有一致性。 在面向对象系统中,我们经常会遇到一类具有”容器“特征的对象—即他们在充当对象的同时,又是其他对象的容器。比如在一些管理系统中就会出现总公司下面有很多的分公司,分公司下面有很多的部门,每个部门下又有很多的员工,像分公司和部门就是既充当了“对象”的角色也充当了“容器”的角...

发布于 技术

设计模式笔记(8)—桥接模式(结构型)

Gof定义将抽象部分与实现部分分离,使他们都可以独立地变化。 先来看一个简单的例子,假设我们需要开发一个同时支持PC和手机的坦克游戏,游戏在PC和手机上的功能都一样,有同样的类型,有同样的功能需求变化,而这些游戏中的坦克有多种不同的型号:T50 T60等。根据面向对象的思想,我们可以很容易设计一个坦克(Tank)的抽象类,然后不同的型号都继承抽象类,并且PC和手机上的图形绘制,操作等都是不相...

发布于 技术

程序员怎样学习英语

英语的重要性已经毋庸置疑,对于程序员来说更甚,一些最新的技术资料是英文的,如果想进入外企英语也是一个很重要的条件。对于程序员来说怎样学习好英语,在此谈一下我的一些学习经验。希望对英语像我这样不怎么好的朋友有所帮助,也欢迎大家提出意见和建议。 英语的学习不外乎“听说读写”,按照通常的英语学习来说“听说读写”这个顺序是有道理的,语言最大的用处就是用来交流,听说排在首位无可厚非。不过对于程序员来说...

发布于 思考

设计模式笔记(7)—适配器模式(结构型)

Gof定义将一个类的接口转换成客户所希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 动机在软件系统中,由于应用环境的变化,常常要将“一些现存的对象”放在心的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。 适配的意思是在不改变原有实现的基础上,将原先不兼容的接口转换为兼容的接口。在我们的生活中有着很多适配器的例子,笔记本的电源适配器、一些卡的...

发布于 技术

去健身房已经两个礼拜了初见成效

工作以来,运动是越来越少,特别是在冬天,每天几乎都在电脑跟前,以至于肚子上的赘肉逐渐多了起来,所以在半个月前我在公司旁边的帕菲克办了张季卡(400),每天下班后过去锻炼一个小时,基本以跑步为主,附加仰卧起坐和一些力量的练习。截止到今天已经去了6次,频率也还算是比较高的,感觉腹部平坦了不少,呵呵,可能是心理作用。不过我相信只要这个冬天能够坚持下来,一定会很有效果的。 加油!!自己给自己打打气!

发布于 成长

设计模式笔记(6)—原型模式(创建型)

Gof定义使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象。 动机在软件系统中,经常面临着“某些结构复杂的对象”的创建工作,但由于需求的变化,这些对象将成面临着剧烈的变化,但他们拥有比较稳定一致的接口。 假设在一些打斗游戏场景中,有这样一些角色,普通(NormalActor),可以飞的(FlyActor),可以潜水的(WaterActor) 123public abstra...

发布于 技术

设计模式笔记(5)—工厂方法模式(创建型)

Gof定义定义一种用于创建对象的借口,让子类决定实例化哪一个类,Factory Method使得一个类的实例化延迟到子类。 动机在软件系统中,经常面临着“某个对象”的创建工作;由于需求的变化,这个对象经常面临着剧烈的变化,但是它却拥有比较稳定的借口。 假设有这样的一个场景,有一个汽车类和一个汽车测试框架类,汽车测试框架负责对汽车来进行测试,通常情况下我们会想下面这样写。 1234567891...

发布于 技术
4556