- 博客(13)
- 资源 (19)
- 问答 (1)
- 收藏
- 关注
原创 java设计模式10:Flyweight
享元模式是对象的结构模式。 享元模式以共享的方式高效地支持大量的细粒度对象。享元对象能做到共享的关键是区分内蕴状态(Internal State)和外蕴状态(External State). 一个内蕴状态是存储在享元对象内部的,并且是不会随环境改变而有所不同的。因此,一个享元可以具有内蕴状态并可以共享。 一个外蕴状态是可随环境改变而改变的,不可以共享的状态。享元对象的外蕴状态必须由客户端保存,并在
2011-06-28 23:47:00 925 1
原创 java设计模式9:Proxy(3)虚拟代理
加载延迟可以提高软件的友好程度。 当一个真实的主题对象的加载需要耗费资源时,一个虚拟代理对象可以代替真实对象接受请求。一旦接到请求,代理对象马上打出一段“正在加载”的信息,并在适当的时候加载真实主题对象,也就是模块或者图像。简略图如下图所示: 本章将给出一个加载图像的例子,由于图像的加载会耗费一定的资源,因此,要求设计一个虚拟代理对象,以替代图像对象接受客户端的请求。当虚拟代理对象接到请求
2011-06-28 22:38:00 890
原创 java传参的值传递,引用传递
最近需要使用java,发现java并未像c++那样专门通过某些符号来明确参数的值传递和引用传递,而是统一采用引用传递。 例如有如下代码: static void testKFloatChange(KFloat f1, KFloat f2){ f1.nValue = 25; f1.nDigit = 1; f1.nUnit = 0; f2 = f1;}pu
2011-06-28 14:38:00 880
原创 java设计模式9:Proxy(2)
一个美国金融网站的真实的例子 此处的代理,包含权限保护和智能引用代理 package com.javapatterns.proxy.smartproxy; public class Client{ private static Searcher searcher; public static void main(String[] args) { sear
2011-06-23 00:49:00 696
原创 java设计模式9:Proxy
代理模式也是一种通信接间化的一种思想体现。同样有这种思想的还有适配器模式和装饰模式。 1、类适配器和对象适配器模式简图 2、装饰模式简图 3、所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。简略图如下: 远程代理 虚拟代理 Copy-on-Write代理 保护代理
2011-06-22 23:22:00 786
原创 java设计模式8:Decorator(2)
又一例: 此例中SalesOrder为发票的主部,此处为待装饰的对象。 打印出的内容为: FireWheel Tire 4 ¥154.23 ¥616.92Front Fender 1 ¥300.45 ¥300.45 这对于一个发票而言,是明显不够的,需要有头部,也需要有尾部,再加上前面显示的主要部分,形成一个完整的发票。本例中考虑的是头部与尾部可能会经常
2011-06-22 21:59:00 678
原创 java设计模式8:Decorator
装饰(Decorator)模式又名包装(Wrapper)。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。 装饰模式使用原来被装饰的类的一个子类的实例,把客户端的调用委派到被装饰类。装饰模式的关键在于这种扩展是完全透明的。 1、抽象构件(Component):给出一个抽象接口,以规范准备接收附加责任的对象。2、具体构件(Concrete Component):定义一个将要
2011-06-20 23:37:00 594
原创 java设计模式7:Composite
安全式的组合模式 涉及到三个角色: 1、抽象构件(Component):这是一个抽象角色,它给参加组合的对象定义出公共的接口及其默认行为,可以用来管理所有的子对象。组合对象通常把它所包含的子对象当做类型为Component的对象。在安全式的合成模式里,构件角色并不定义出管理子对象的方法,这一定义由树枝构件对象给出。 2、树叶构件(Leaf):树叶对象是没有下级子对象的对象,定义出参
2011-06-20 22:03:00 848
原创 java设计模式6:Adapter
结构模式有下面这些:适配器模式,缺省适配模式,合成模式,装饰模式,代理模式,享元模式,门面模式,桥接模式等. 适配器模式有类的适配器模式和对象的适配器模式两种不同的形式。如下图所示,左边是类的适配器模式,右边是对象的适配器模式。 类的适配器模式把被适配的类的API转换成为目标类的API,其静态结构图如下图所示: 在上图中可以看出,Adaptee类并没有sampleOperation2
2011-06-13 23:24:00 1328
原创 java设计模式5:Prototype
克隆满足的条件:clone()方法将对象复制了一份并返还给调用者。一般而言,clone()方法满足以下的描述:1、对任何的对象x,都有:x.clone() != x。换言之,克隆对象与原对象不是同一个对象。2、对任何的对象x,都有:x.clone().getClass == x.getClass(),换言之,克隆对象与原对象的类型一样。3、如果对象x的equals()方法定义恰当的话,那么x.cl
2011-06-13 21:00:00 2998
原创 java设计模式4:builder
1、抽象建造者(Builder)角色:给出一个抽象接口,以规范产品对象的各个组成成分的建造。一般而言,此接口独立于应用程序的商业逻辑。2、具体建造者(Concrete Builder)角色:担任这个角色的是与应用程序紧密相关的一些类,它们在应用程序调用下创建产品的实例。这个角色要完成的任务包括:1)实现抽象建造者Builder所声明的接口,给出一步一步地完成建造产品实例的操作。2)在建造过程完成后
2011-06-06 23:38:00 2211
原创 java设计模式3:abstract factory
抽象工厂模式是所有形态的工厂模式中最为抽象和最具有一般性的一种形态。抽象工厂模式的简略类图如下图所示: 抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,创建多个产品族中的产品对象。这就是抽象工厂模式的用意. 抽象工厂模式与工厂方法模式的最大区别就在于,工厂方法模式针对的是一个产品等级结构,而抽象工厂模式则需要面对多个产品等级结构。 采用抽象工厂模式设计出的系统类
2011-06-04 00:36:00 999
原创 java设计模式2:factory method
1、抽象工厂(Creator)角色:担任这个角色的是工厂方法模式的核心。它是与应用程序无关的。任何在模式中创建对象的工厂类必须实现这个接口。在上面的系统中,这个角色由Java接口Creator扮演:在实际的系统中,这个角色也常常使用抽象Java类实现。2、具体工厂(Concrete Creator)角色:担任这个角色的是实现了抽象工厂接口的具体Java类。具体工厂角色含有与应用密切相关的逻辑,并且受到应用程序的调用以创建产品对象。3、抽象产品(Product)角色:工厂方法模式所创建的对象的超类型,也就是产
2011-06-02 23:52:00 789
C++11标准实现的线程池以及在此基础上实现的仿cron功能的定时器
2024-04-05
kline-chart,python3.12下运行,主要使用pyside6开发,下载下来后将所缺库安装即可直接运行
2024-03-24
boost_1_66_0_windows.rar
2024-03-16
webpy框架写的blog
2017-05-11
web-server
2017-05-10
gtest使用范例-使用cmake编译
2017-02-08
一个简单的calendar源代码
2016-06-19
Spring 3.x 企业应用开发实战-源代码(myeclipse测试通过)
2015-12-25
maven3 安装包
2015-12-06
wing ide 5.0.6 最新注册机
2014-06-02
正则表达式解析器源码(C#完成)
2014-04-20
log4cplus-1.1.2vs2008编译通过
2013-12-08
nginx源码vs2008版
2012-08-25
log4cxx测试工程
2012-03-03
设计模式之详解(c++实现版)
2009-07-08
多叉树构造器
2008-04-13
在android系统中如何监控可写入的控件获得焦点这样的事件
2014-03-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人