仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 534|回复: 13
打印 上一主题 下一主题

[学习教程] 发布一篇在Java中使用计划形式之Singleton

[复制链接]
金色的骷髅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:29:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
但是一些大型开发或者是保密型比较高的项目都会用java,原因有2点,一:java是开源的,不怕别人留后门,偷我工具,.net网页编程就不一样了,保持微软的一向风格,源代码不公开
基础观点
ingleton是一种创立性模子,它用来确保只发生一个实例,并供应一个会见它的全局会见点。对一些类来讲,包管只要一个实例是很主要的,好比有的时分,数据库毗连或Socket毗连要遭到必定的限定,必需坚持统一工夫只能有一个毗连的存在。
再举个例子,汇合中的set中不克不及包括反复的元素,增加到set里的对象必需是独一的,假如反复的值增加到set,它只承受一个实例。JDK中正式使用了Singleton形式来完成set的这一特征,人人能够检察java.util.Collections里的外部静态类SingletonSet的原代码。实在Singleton是最复杂但也是使用最普遍的形式之一,在JDK中到处可见。
复杂剖析
为了完成Singleton形式,我们必要的是一个静态的变量,可以在不创立对象的情形下影象是不是已发生过实例了。静态变量或静态办法都能够在不发生详细实例的情形下间接挪用,如许的变量或办法不会由于类的实例化而有所改动。
在的布局中能够看到,uniqueInstance就是这个自力的静态变量,它能够影象对象是不是已实例化了,在静态办法Instance中对这个变量举行判别,若没有实例化过就发生一个新的对象,假如已实例化了则不再发生新的对象,仍旧前往之前发生的实例。

<br>
:Singleton形式布局
详细实行
完成Singleton形式的举措一般有三种。
1、用静态办法完成Singleton
这类办法是利用静态办法来监督实例的创立。为了避免创立一个以上的实例,我们最好把机关器声明为private。
如许能够避免客户程序员经由过程除由我们供应的办法以外的恣意体例来创立一个实例,假如不把机关器声明为private,编译器就会自作伶俐的主动同步一个默许的friendly机关器。这类完成办法是最多见的,也就是中布局的尺度完成。
publicclassSingleton
{
privatestaticSingletons;
privateSingleton()
{
};
/**
*Classmethodtoaccess
thesingletoninstanceoftheclass。
*/
publicstaticSingletongetInstance()
{
if(s==null)
s=newSingleton();
returns;
}
}
//测试类
classsingletonTest
{
publicstaticvoidmain(String[]args)
{
Singletons1=Singleton.getInstance();
Singletons2=Singleton.getInstance();
if(s1==s2)
System.out.println
("s1isthesameinstancewiths2");
else
System.out.println
("s1isnotthesameinstancewiths2");
}
}
singletonTest运转了局是:
s1isthesameinstancewiths2
这证实我们只创立了一个实例.
<p>
首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。
柔情似水 该用户已被删除
沙发
发表于 2015-1-18 17:16:04 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
小魔女 该用户已被删除
板凳
发表于 2015-1-20 12:32:21 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
简单生活 该用户已被删除
地板
发表于 2015-1-24 12:43:14 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
乐观 该用户已被删除
5#
发表于 2015-1-25 14:43:25 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
若天明 该用户已被删除
6#
发表于 2015-2-2 22:32:08 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
再现理想 该用户已被删除
7#
发表于 2015-2-6 17:33:25 | 只看该作者
是一种为 Internet发展的计算机语言
精灵巫婆 该用户已被删除
8#
发表于 2015-2-8 17:39:20 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
活着的死人 该用户已被删除
9#
发表于 2015-2-10 17:01:21 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
admin 该用户已被删除
10#
发表于 2015-3-1 12:52:22 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
透明 该用户已被删除
11#
发表于 2015-3-4 02:40:32 | 只看该作者
是一种为 Internet发展的计算机语言
海妖 该用户已被删除
12#
发表于 2015-3-11 01:30:39 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
飘飘悠悠 该用户已被删除
13#
发表于 2015-3-17 18:08:20 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
分手快乐 该用户已被删除
14#
发表于 2015-3-24 16:23:56 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-28 19:18

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表