通过Jive学习 设计模式

jive论坛源码(经典) jive是java做的最经典的网站源码,经过多人改动,现在几乎完美,大家好好学习啊,呵呵 立即下载

1. Jive是什么?

Jive是基于JSP/JAVA技术构架的一个大型BBS论坛系统。人们这样评价Jive:学习Java必须读懂两套源代码,第一个就是Jive 第二个是Sun的宠物店Pet Store。

 学习Jive源程序,可以更好的理解和应用设计模式。


2. 设计模式,框架

  •   什么是设计模式?

  特定问题的最优解决方案,是经验。

  • 为什么要使用设计模式?

提高代码的可重用性,可靠性,让代码更容易被使用者理解。例如通用的框架系统spring,ibatis,webx都用到了设计模式。

  • 何为框架?

框架是一组相互协作的类。框架系统是构成一类特定软件可复用设计的一组相互协作的类。主要对应用系统中反复重用部分的提炼,类似一种模板。例如webx框架,将web应用程序反复重用的功能例如webx应用支持的服务-表单验证服务。

框架通常定义了应用体系的整体结构、类和对象的关系等设计参数,以便于具体应用实现者能集中精力于应用本身的特定细节,例如利用webx框架做web应用程序的开发,开发人员只需关心应用程序的逻辑例如编写模板文件,screen类等。

框架强调设计复用,而设计模式最小的可重用单位,因此框架不可避免地会反复使用到设计模式。

  • 什么人不适合学习设计模式?

  不适合初学者。有一定编程经验,最好是项目开发经验后再来学习设计模式。


3. Jive源码用到的几种设计模式

  • 工厂模式和抽象工厂模式

  工厂模式为创建对象提供了一种接口,工厂模式封装了创建对象的细节过程,从而使得外界调用一个对象时,根本无需  关心这个对象是如何产生的。
  工厂模式是创建一种产品接口下的产品对象,而抽象工厂模式是创建多种产品接口下的产品对象。
  • 单态模式
保证一个类有且仅有一个对象实例,并提供一个访问它的全局访问点。
  • 代理模式
它是实际访问对象的代理对象,或者影子对象,主要达到控制实际对象的访问。这种控制的目的很多:提高性能和权限控制例如控制客户端对实际对象的访问权限。
  •  迭代器模式
迭代(Iterator)模式是提供一种顺序访问某个集合各个元素的方法,确保不暴露该集合的内部表现。迭代模式应用于对大量数据的访问,Java Collection API中Iterator就是迭代模式的一种实现。
  • 装饰模式
装饰(Decorator)模式是动态给一个对象添加一些额外的职责,或者说改变这个对象的一些行为。这就类似于使用油漆为某个东西刷上油漆,在原来的对象表面增加了一层外衣。在装饰模式中,有两个主要角色:一个是被刷油漆的对象(decoratee);另外一个是给decoratee刷油漆的对象(decorator)。这两个对象都继承同一个接口
  • 观察者模式
观察者(Observer)模式是定义对象之间一对多的依赖关系,当一个被观察的对象发生改变时,所有依赖于它的对象都会得到通知并采取相应行为。使用观察者模式的优点是将被观察者和观察者解耦,从而可以不影响被观察者继续自己的行为动作。观察者模式适合应用于一些“事件触发”场合。


参考:http://www.jdon.com/idea/jive/03003.htm 



java学习必学系统--jive java学习必须了解的系统,整理过后完整系统,导入myeclipse即可,并附带数据库和配置说明,以及jive知识要点详解pdf格式 立即下载

相关推荐

Jive java版源码

Jive java版源码 设计模式必看  

jive 安装配置

环境准备: Windows XP,  jdk1.6.0_18, Mysql Server 5.5, Tomcat 5.5.35, jive 2.0.1 在设置好JAVA_HOME以后设置CLASSPATH的时候把tools.jar以及dt.jar也放到路径里。 ;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.ja

fish的专栏 1181

JIVE: Java Interactive Voice Environment-开源

Jive API是用于编写IVR应用程序的轻量级Java框架。 Jive API的前提是允许编写功能强大的IVR应用程序,而用户不必担心(或知道)底层IVR平台。

Jive学习(一)

一、缓存机制的原理:在数据从持久层取出来后保存在内存中,下次读取的时候,直接从内存中读取。 二、缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。   缓存的介质一般是内存,所以读写速度很快。但如果缓存中存放的数据...

weixin_30546189的博客 176

【教程】ENVI主成分分析详解

主成分分析(PCA)是一种统计方法,简而言之就是用几种特性去描述事物。每个事物都可以用不同的特性去进行表达,但这些特性一般而言是存在相互的融合和冗余,而用主成分分析方法将这些特性进行转换成不相关的新特性。 在ENVI软件中共提供了三种主成分分析方式分别为:(1)Forward PCA Rotation Existing Statistics(2)Forward PCA Rotation New Statistics and Rotate(3)Inverse PCA Rotati...

YW_remote的博客 1万+

Zynq UltraScale+网络加速方案:用AXI Ethernet Subsystem实现2.5G吞吐量的配置秘籍

本文详细介绍了在Xilinx Zynq UltraScale+平台上使用AXI Ethernet Subsystem实现2.5Gbps网络吞吐量的配置方法。通过硬件设计优化、Vivado工程配置、Linux驱动调优及性能测试等关键步骤,为工业视觉和5G前传等高速网络应用提供可靠解决方案。

weixin_30485379的博客 615

Jive论坛介绍

学习Jive源程序,可以更好的理解和应用设计模式,学习Jive论坛Jive论坛Jive论坛Java必须读懂两套源代码,第一个就是Jive 第二个是Sun的宠物店Pet Store.设计模式和面向对象的思想是Java学习的内功,而Jive无疑是九阴真经。Jive论坛的优点是由于采用缓冲机制,可以承受巨大访问量,同时能保持快速反应,在国外站点采用很多。主要功能如下:快速的缓存功能,将经常访问的帖子保存

laixiaonian88的专栏 3271

PyQtWebEngine安装避坑指南:快速解决ModuleNotFoundError

本文详细解析了PyQt5开发中常见的ModuleNotFoundError: No module named 'PyQt5.QtWebEngineWidgets'错误。核心原因是PyQt5 5.11版本后,网页引擎组件被独立为PyQtWebEngine包。文章对比了退回旧版本、独立安装及使用Conda等多种解决方案,并提供了针对Windows、macOS和Linux不同平台的实战安装指南与验证方法,帮助开发者快速解决依赖问题。

weixin_29056101的博客 428

jive论坛部分代码

jive论坛部分代码。学习设计模式的好帮手。

tiandiqing的专栏 154

【BLE系列-第六篇】GATT解析:属性、特征、描述符的逻辑关系

本文系统介绍了BLE协议中的ATT和GATT机制。ATT以"属性"为基本数据单元,包含UUID、Handle、权限和Value四个要素。GATT则在ATT基础上构建了服务、特征和描述符的层次结构:服务(UUID:0x2800/0x2801)通过声明属性标识,特征声明(UUID:0x2803)指向特征值(UUID:0x2Axx或自定义),描述符(UUID:0x2900~0x290F)提供附加信息。GATT复用ATT发现机制,通过定义特定UUID语义实现服务发现和特征管理。这种设计使BLE设

qq_43399763的博客 1929

智能车八邻域图像算法

智能车八邻域图像算法

技术缝合怪的博客 4万+

Jive论坛简介

学习Jive源程序,可以更好的理解和应用设计模式,学习Java必须读懂两套源代码,第一个就是Jive 第二个是Sun的宠物店Pet Store.Jive论坛的优点是由于采用缓冲机制,可以承受巨大访问量,同时能保持快速反应,在国外站点采用很多。主要功能如下:快速的缓存功能,将经常访问的帖子保存在内存中,实现快速访问,可通过Web管理界面动态监测缓存大小,根据访问量动态调整缓存。 强大

SML的专栏 8023

机器学习: 共轭梯度算法(PCG)

今天介绍数值计算和优化方法中非常有效的一种数值解法,共轭梯度法。我们知道,在解大型线性方程组的时候,很少会有一步到位的精确解析解,一般都需要通过迭代来进行逼近,而 PCG 就是这样一种迭代逼近算法。 我们先从一种特殊的线性方程组的定义开始,比如我们需要解如下的线性方程组: Ax=bAx=b 这里的 A(n×n)A(n×n) 是对称,正定矩阵, b(n×...

weixin_30807677的博客 3181

Jive中的设计模式

Jive中的设计模式(来源:http://www.cn.ibm.com/) (Design Pattern) 马旋 Author name (email address)-->2001年 5月摘要:Jive 是一个开放源码的论坛项目, 也就是我们所常见的 BBS, 采用了 SUN 公司的 JSP 技术, 相比起 j2ee 这个庞大的体系结构, 其整个的设计思想非常精炼, 适用于中小型网

Eric.Jonah! 687

从一只龙虾到一支团队:OpenClaw 单 Bot 多 Agent 配置实践

单 Bot 多 Agent只有一个对外的聊天入口(飞书 Bot)内部有多个独立的 AI Agent,各司其职主 Agent(总指挥)负责接收任务并分配给子 Agent子 Agent 完成任务后将结果返回给主 Agent角色Agent ID职责使用场景🎯 总指挥main-agent统筹协调,任务分发接收所有用户请求✍️ 笔杆子内容创作公众号、博客、小红书🔬 参谋canmou深度研究竞品分析、市场调研📋 运营官operations运营管理邮件、日历、社交媒体。

Maynor的博客 1082

PX4实战(四):PX4 uorb模块详解

本节主要讲解PX4中的uorb消息,主要包括uorb的基本概念使用、PX4内重要的uorb消息、如何自定义uorb消息以及使用uorb消息的注意点等,其中讲解重要uorb消息是为了对PX4内重要数据结构有初步的了解,有助于后期算法理解。uORB(micro Object Request Broker)是PX4中用于模块间通信的轻量级发布-订阅(Publish/Subscribe)机制。模块之间可以通过uORB传递消息,无需直接调用对方函数;提高系统模块化与解耦性;

PX4-SLAM-PNC 1932

Jive1.0中的设计模式

Jive中的设计模式(来源:http://www.cn.ibm.com/) (Design Pattern) 马旋 2001年 5月 摘要:Jive 是一个开放源码的论坛项目, 也就是我们所常见的 BBS, 采用了 SUN 公司的 JSP 技术, 相比起 j2ee 这个庞大的体系结构, 其整个的设计思想非常精炼, 适用于中小型网站, 建立自己的论坛系统. 这篇文章我们就一起来看一看 Ji...

weixin_33859231的博客 102

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

转载:23种设计模式整理(很全)

23 种设计模式汇集 目录 文章目录23 种设计模式汇集目录设计模式引言学习 GoF 设计模式的重要性建筑和软件中模式之异同设计模式之 Singleton(单态)模式实战书籍《Java 实用系统开发指南》单态定义:设计模式之 Factory工厂模式定义*:*提供创建对象的接口*.* 为何使用*?*工厂模式中有: 工厂方法*(Factory Method)* 抽象工厂*(Abstract Factory).*设计模式之 Builder设计模式之 Prototype(原型)设计模式之 Adapter(适配器)设

qq_46120580的博客 2258

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

设计模式(Patterns in Java)

如今设计模式已经成为架构师和程序员之间沟通的必备语言,也是普通程序员成长为资深程序员的必备基础之一。只有掌握了设计模式,才能更好地掌握DDD领域驱动设计等OO分析设计方法,也才能更熟练地学习使用不断涌现的新语言。   本站GOF设计模式是国内媒体(书籍和网站)中最早(2002年)成体系专题讲解,至今已经累积了大量不同时期很多道友的模式学习讨论专题。对中国程序员设计思想提升发挥一定作用,甚至有

shenlin2011的专栏 746

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

如何学习java

如何学习java作者: ∣来源:JavaResearch∣原文地址∣2003-10-17很多网友问我学习Java有没有什么捷径,我说"无他,唯手熟尔".但是我却很愿意将自己学习的一些经验写出来,以便后来者少走弯路,帮助别人是最大的快乐嘛!要想学好Java,首先要知道Java的大致分类.我们知道,自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块...

weixin_34111790的博客 157

Java经典流水学习(转帖)

   要想学好Java,首先要知道Java的大致分类。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。J2SE开发桌面应用软件比起VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开

Leeu的专栏 1367

java信徒齐(七)步走

Java信徒齐(七)步走: 0) 丫丫学步。。。 1) 编程基础// 那么我书也看了,程序也做了,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序. 2) 项目经验// #1 快去找一份Java的编程工作来...

czl026 162

java初学者

很多网友问我学习Java有没有什么捷径,我说“无他,唯手熟尔”。但是我却很愿意将自己学习的一些经验写出来,以便后来者少走弯路,帮助别人是最大的快乐嘛!   要想学好Java,首先要知道Java的大致分类。我们知道,自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environm

loppiz的专栏 848

如何成为java高手

如何迅速成为Java高手 阅读次数3247 出处 http://tech.163.com      --------------------------------------------------------------------------------很多网友问我学习Java有没有什么捷径,我说“无他,唯手熟尔”。但是我却很愿意将自己学习的一些经验写出来,以便后来者少走弯路,帮

baselive的专栏 2425

一个JAVA程序员的成长经历

很多网友问我学习Java有没有什么捷径,我说"无他,唯手熟尔".但是我却很愿意将自己学习的一些经验写出来,以便后来者少走弯路,帮助别人是最大的快乐嘛!要想学好Java,首先要知道Java的大致分类.我们知道,自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environ...

weixin_34072637的博客 362
上一篇: java annotation
下一篇: 分布式key-Value存储
cuidiwhere
博客等级 码龄19年 133粉丝 102原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值