摘要:http://www.cnblogs.com/www-35java-com/admin/EditPosts.aspx?opt=1其实Chain of Responsibility的概念,即使是一个刚学程式设计的新手也会用到,一个简单的 if...else if ... else 流程控制就有Chain of Responsibility的概念:if(/* 符合请求条件一 */) // 执行请求一 else if(/* 符合请求条件二 */) // 执行请求二 else // 执行预设请求或显示讯息这是从结构化程式设计的观点来看Chain of Responsibility的概念,若使用物件的观
阅读全文
01 2011 档案
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=278&extra=page%3D1延续 Proxy模式(一) 的议题,来看看实现代理的两种方式:Static Proxy与Dynamic Proxy。严格来说这是属于模式的实现方式,不过藉由实例可以更了解Proxy模式的应用。先来看个例子,这个例子是记录(log)动作,程式中很常需要为某些动作或事件作下记录,以便在事后检视或是作为除错时的资讯,一个最简单的例子如下: HelloSpeaker.javaimport java.util.logging.*; public class
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=283&extra=page%3D1Mediator的意思是中介者、调节者、传递物,顾名思义,这个模式在程式中必然负担一个中介、调节、传递的工作。物件导向设计中,每个物件所负担的工作尽可能的简单明了,鼓励物件将工作分布至其它物件上,让一群工作属性相同的物件得以共同合作,即所谓高聚合性,以增加物件的可重用性。然而在组织物件工作的同时,物件彼此之间可能知道彼此的存在,并相互依赖,这就使得物件之间的耦合性相对的提高,最差的情况下,所有的物件都知道彼此的存在,这又会使得系统的重用性降低。M
阅读全文
摘要:http://www.cnblogs.com/www-35java-com/admin/EditPosts.aspx?opt=1如果您写过Java的Swing视窗程式,您可能使用过Command模式了,例如在您按下JMenuItem的“剪下”选项时,执行对JTextArea的选定文字之剪下动作,并将状态列设定为文件已修改状态。在设计Swing时,设计人员是不可能知道使用Swing类别的人,在某个事件发生后所要执行的动作是什么的,他们采用了Command模式,以上面的需求作为例子,一个实作的片段可能像是这个样子:menuCut.addActionListener( new ActionListe
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=286&extra=page%3D1如果您不了解TCP的连线方式,在看 Gof的书介绍State模式时,大概会看得一头雾水吧!TCP的连线状态图,光是要了解就要花点精神了,它的连线状态很多,用来说明状态模式确实很适合,但不适合教导初学模式的人。 由简单的开始会比较好理解状态模式的作用,先来看一个例子,如果您有一个只能顺时针转动的瓦斯开关,转动一次的状态为off、small fire、medium fire与largefire,您如何在程式中控制状态的变化与行为呢?一个最简单的方式就
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=284&extra=page%3D1您希望您的程式中具有复原机制,如果您直接在物件中建立复原机制,这会使得物件本身的职责加重,并且使得物件的重用性降低。与其在物件内建立复原机制,不如将复原机制从物件中脱离出来,这个时候您可以使用Memento模式来达成这个功能。Memento模式在Originator中保留一个Memento成员,这个Memento可以包括Originator的成员资讯,在外部的话,Memento可以由一个Caretaker维护,每对Originator作一个动作,
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=287&extra=page%3D1考虑您要设计一个更换各种符号的工具类TextCharChange,您是否会采用这样的方式:public void replace() { switch(getChangeType()) { case RN_TYPE: replaceRN(); break; case N_TYPE: replaceN(); break; case OTHER_TYPE: replaceOTHER(): break; ... } }这么作的缺点是,日后您要增加更
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=288&extra=page%3D1不要将设计模式想得高不可攀,好像高手才会使用的东西,事实上如果您在下手程式之前,能稍稍对程式作个分析规划,或多或少都会用到一些模式了,模式不是教条,它只是前人的经验成果,而 Gof 的书则是择前人之精华持续改进而来罢了。Template Method模式就是一个很简单的模式,但可能是使用最广泛的模式,也许您也一直在使用这样的模式,看它的 UML 类别结构图就知道了:仅仅是抽象类别与具体类别实作的关系而已,有些人常问抽象类别与介面的区别为何,Tem
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=289&extra=page%3D1在Java中所有的物件都继承自Object物件,这样作的优点之一,就是使得一些集合物件的资料结构容易管理,例如您可以将任何型态的物件放入Vector中。然而现在有个问题是,如果您的集合(connection)物件中不仅储存一种型态的物件,如果想要对这些物件作出一些个别化的操作,首要条件就是要知道该物件的型态,使用 instanceof 似乎是个不错的方式,在程式简单的情况下,也许您会这么作:public class ElementA { // s
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=291&extra=page%3D1Producer Consumer模式与 Guarded Suspension 模式是类似的,只不过Guarded Suspension模式并不限制缓冲区的长度,ProducerConsumer模式假设所生产的产品放置在一个长度有限制的缓冲区(就像是一个产品桌,它可以摆放的空间是有限的),如果缓冲区满了,则生产者必须停止继续将产品放到缓冲区中,直到消费者取走了产品而有了空间,而如果缓冲区中没有产品,当然消费者必须等待,直到有新的产品放到缓冲区中。
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=290&extra=page%3D1考虑这么一个伺服器,它可以处理来自多个客户端的服务请求(Request),为了不丢失客户的请求,它要维持一个缓冲区,客户的请求会先储存至缓冲区中,而伺服器会从缓冲区中取出请求并执行,如果缓冲区中没有请求,则伺服器就等待,直到被通知有新的请求存入缓冲区中,伺服器再度进行请求的执行。关于这个描述的一个简单 UML 顺序图如下所示: 首先要考虑到,缓冲区会同时被两个以上的执行绪进行存取,即伺服器的请求处理执行绪与客户端执行绪,所以必须对缓冲区进行防护。
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=292&extra=page%3D1Worker Thread模式在Request的管理上像是 Producer Consumer 模式,在Request的行为上像是 Command 模式。Producer Consumer模式专注于Product的生产与消费,至于Product被消费时是作何处理,则不在它的讨论范围之中。 如果您的Product是一个Request,消费者取得Request之后,执行Request中指定的请求方法,也就是使用Command模式,并且您的Reques
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=295&extra=page%3D1如果有一个资料档有可能同时间会有许多客户端对它进行读取与写入的动作,则必须注意资料的同步问题,像是两个写入者进行写入时,后一个写入者的资料会有可能将次一个写入者的资料覆盖掉;而有时您希望读取者看到的是最新的资料,如果在读取的时候,有写入者想要对资料进行写入,则最好等待读取者读取完毕,相反的如果在写入时有客户想要读取资料,则最好等待,以确保读出来的资料是最新的资料。读取写入的同步问题向来是难解的问题之一,有几个可行的作法,例如若有写入的动作时,则读
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=294&extra=page%3D1Future模式可以简单的看成是 Proxy 模式 与 Thread-Per-Message 模式的结合,在Proxy模式中,用一个Proxy来代替真正的目标(Subject)生成,目标的生成可能是费时的,例如在开启一个内嵌图片的文件中,希望程式能尽快完成开启文件的动作,并显示一个可接受的画面给使用者看,在还不需要看到图片的页面中先使用Proxy代替真正的图片载入,只有在真正需要看到图片时,才由Proxy物件载入真正的图片。考虑这样一个情况,使用
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=297&extra=page%3D1无论如何,要编写一个多执行绪安全(thread-safe)的程式总是困难的,为了使用的共用资源,您必须小心的对共用资源进行同步,同步带来一定的效能延迟,而另一方面,在处理同步的时候,又要注意物件的锁定与释放,避免产生死结,种种因素都使得编写多执行绪程式变得困难。Thread-SpecificStorage模式尝试从另一个角度来解释多执行绪共用资源的问题,其思考点很简单,即然共用资源这么困难,那么就干脆不要共用,何不为每个执行绪创造一个资源的复本,
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=296&extra=page%3D1Two-phaseTermination直译的话是“两相终止”,不过就这个模式而言,该译作“两阶段终止”比较适当,想像您有一个执行绪正在周期性的运作,在“运作阶段”您送出了停止执行绪的请求,这时候执行绪不该慌张的马上终止目前的工作,而是先完成这一次周期的工作,然后进入“善后阶段”完成一些善后的工作,例如关闭档案或网路串流,所谓的两阶段终止,即中止“运作阶段”,并完成“善后阶段”,完整的完成执行绪的工作。以Java的Thread终止而言,不建议您直
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=258&extra=page%3D2问题的提出 以前做一个界面的时候常常会遇到这样的尴尬情况:希望保留各个独立的组件(类),但又希望它们之间能够相互通信。譬如Windows中的Explorer,我们希望鼠标点击左边是树型目录的一个节点,右边的文件浏览能及时列出该节点目录下的文件和子目录,类似这样一个简单的应用,如果只有一个类继承JFrame,而树型组件和浏览文件的面板作为成员,就像: publicclass MainFrame extends JFrame { JPanel t
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=260&extra=page%3D2JDBC技术是Java语言中数据库编程的标准,近年来随着B/S应用的广泛兴起,Java技术在目前的服务器端越来越受重用。作为信息系统中关键的一部分,数据库编程是编程人员必须掌握的一部分。JDBC技术本身提供了一些可用的编程接口来完成一些基础事务的处理,但我们也发现,如果只是单纯地使用JDBC规范中提供的编程接口来完成事务逻辑的话,代码的冗余度十分高,编程效率也很低。基于此,如果在底层接口的基础之上,运用适当的设计模式进行抽象封装,并加以一些特定的
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=259&extra=page%3D2可能你已经在用Decorator模式了,但是跟所有其他模式一样,知道你为什么使用它,学习使用它跟别的开发者沟通是很重要的。 Decorator模式,即Wrapper模式,其强制控制作用是在不改动一个类的代码或者不破坏一个类的接口的情况下为该类添加功能。当你想一个类具有更多功能的时候,使用Decorator模式意味着增加功能后的版本不一定要通过扩展类来重用现有功能。 假定有一个叫做Action的接口有两个方法,act1()、act2()。这个接口有
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=262&extra=page%3D2Simple Factory模式(又称Static Factory模式),一个Simple Factory生产成品,而对客户端隐藏产品产生的细节。实作时定义一个产品介面(interface),并透过特定静态方法来建立成品。假设有一个音乐盒工厂,购买音乐盒的客人不用知道音乐盒是如何制作的,他只要知道如何播放音乐盒就可以了,以 UML 类别图来表示以上的概念:如上图所示的,MusicBoxDemo代表了客户的角色,它只依赖于IMusicBox介面,而
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=261&extra=page%3D24.利用Singleton模式来控制连接池对象的惟一性 我们已经有了管理数据库连接的连接池类ConnectionPool,但要注意一点:连接池对象在系统运行时应该是惟一的。原因很简单,如果不惟一的话,对不同的数据库访问产生不同的连接池对象,那么连接池对象的作用就根本没有起。当然,也可以在程序中只创建一个连接池对象,但这不能保证别的程序员也能做到这一点,这时,应该采用singleton模式,通过getInstance()方法获取惟一的连接池对象。
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=264&extra=page%3D2您想要建立一个迷宫产生程式,迷宫使用二维阵列来定义,0表示道路,1表示墙,2表示宝物,根据所定义的二维迷宫阵列,您想要程式自动产生各种不同材质的迷宫,例如砖墙迷宫,钻石迷宫等等。您可以在程式中定义两个角色,一个是指导迷宫建立的Director角色,一个是按照指导者指示建立迷宫的Builder角色,Director根据定义的迷宫阵列来指导Builder,只要更换Builder,就可以完成不同材质的迷宫。可以使用下面的UML 类别图来表示上述的概念:
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=263&extra=page%3D2假设您要制作一个对话方块(Dialog)元件,您希望的是这个对话方块可以有不同的视感(Look-and- feel),最基本的想法是,藉由Setter将不同视感的元件设定给这个对话方块,例如:CustomDialog.javapublic class CustomDialog { private IButton button; private ITextField textField; public void setButton(IButto
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=266&extra=page%3D2您从图书馆的期刊从发现了几篇您感兴趣的文章,由于这是图书馆的书,您不可以直接在书中作记号或写字,所以您将当中您所感兴趣的几个主题影印出来,这下子您就可在影印的文章上画记重点。Prototype模式的作用有些类似上面的描述,您在父类别中定义一个clone()方法,而在子类别中重新定义它,当客户端对于所产生的物件有兴趣并想加以利用,而您又不想破坏原来的物件,您可以产生一个物件的复本给它。Prototype具有展示的意味,就像是展览会上的原型车款,当您
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=265&extra=page%3D2考虑一个状况,您所经营的工厂正在生产一个新的电视机产品,现在有一个问题发生了,您的电视机产品所有的组件都可以自行生产,像是操作面版、电源、摇控装置等等等,但荧幕却必须依赖另一个厂商或子厂商供应,这时您怎么办?您不能将生产进度停下了,相反的您必须确定一些事情,您知道有关于荧幕控制的所有介面,您可以将这些对介面的操作沟通先实现,等到荧幕到了,直接将荧幕与您的半成品组合起来,一个完整的成品即可出厂。FactoryMethod模式在一个抽象类中留下某个创
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=268&extra=page%3D2考虑使用 Singleton 模式 时拥有子类别的问题,在Singleton模式中的getInstance()通常是一个静态方法,不能在子类别中重新定义它,关于子类别实例的产生交由getInstance()来进行是最好的选择,例如:public class Singleton { private static Singleton instance = null; private Singleton() { // .... } publi
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=267&extra=page%3D2Singleton的英文意义是独身,也就是只有一个人,应用在物件导向语言上,通常翻译作单例:单一个实例(Instance)。很多时候,您会需要Singleton模式,例如印表机管理,您希望程式中只能有一个PrintSpooler,以避免两个列印动作同时输入至印表机中;例如资料库管理,因为建立连接(Connection)物件会耗用资源,您希望程式中只能有一个连接物件,所有其它的程式都透过这个物件来连接资料库,以避免连接物件的重复开启造成资源的耗用;
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=269&extra=page%3D2在Java中如果要定义事件处理的方式,必须实作EventListener的子介面,例如实作 WindowListener来定义一些视窗事件的处理方式,WindowListener中定义了七个方法:public interface WindowListener extends EventListener { public void windowOpened(WindowEvent e); public void windowClosing(Wi
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=271&extra=page%3D2Adapter模式的另一种作法是Class Adapter模式,在这个模式下,Adapter直接继承Adaptee(要引进的新类别),以拥有当中的成员及方法,在C++中的话可以这么作:C++中可以多重继承,但在Java中不行,所以在Java中若要采用Class Adapter,必须作点修改,一方面继承Adaptee,一方面实作Target的介面:代码的实现是这样的: public class Adapter extends Adaptee imp
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=270&extra=page%3D2您的电脑是个旧电脑,新的滑鼠都在使用USB接口了,而您的电脑上并没有USB,而只有一个PS2接口,这时您可以使用一个USB转PS2的接头作为转换,这样您的电脑就可以使用新滑鼠了(当然您也可以使用USB扩充卡,意思是相同的)。类似的概念,有时候您想在原来的程式中加入一个外部元件,例如一个类别,但是这个类别与您目前所设计的程式在介面上并不一致,为了让这个外部类与原程式的介面一致,您必须使用一个类别作为中介来配接它们,这时您可以采用Adapter模式。
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=272&extra=page%3D2在 Gof 的书中指到Bridge模式的目的:“将抽象部份与它的实现部份分离,使它们都可以独立地变化。”这句话写得简短,这边再作进一步的解释,抽象部份指的是行为方面定义,实现方面指的是与特定平台相依的代码实现。一个实际的例子在Gof书中有提到,假设您定义了一个IWindow介面,这个介面只定义一些抽象的绘图行为,而不涉及平台的实作,今天您可以继承这个类来开发适用于X Window的XWindow类,也可以继承这个类来开发适用于WindowsXP系
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=274&extra=page%3D2在JavaSwing中的JTextArea元件预设并没有卷轴,因为设计人员认为卷轴的功能并不是一定需要的,而决定让程式人员可以动态选择是否增加卷轴功能,卷轴的功能是由JScrollPane元件提供,如果您要加入一个具有卷轴功能的JTextArea,您可以如下进行设计:JTextArea textArea = new JTextArea();JScrollPane scrollPane = new JScrollPane(textArea);JSc
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=273&extra=page%3D2如果以绘图为例的话,一个文字是一个绘图元件,一个线段是一个绘图元件,而一个长方形也是一个绘图元件,这些绘图元件可以组成一个图片,如果将这个图片也视作一个绘图元件,则这么递回绘图下去,就可以组合成一个较大的、复杂的图形元件,这样的目的可以使用Composite模式来解决。对于使用者而言,无论是文字、线段或长方形,甚至是组合后的图片元件,它们都拥有一个共同的行为,使用者基本上并不会感觉出它们之间的操作有任何的不同,您可以拖曳、放大、缩小等等,这些行为
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=275&extra=page%3D2考虑您要撰写一个WebMail程式,您手上已经有一些已经开发好的元件(Component),像是开发WebMail所需要的SMTP处理类、允许上传附档的FileUpload类,以及Web安全相关的API、其它相关的Package等等。当您拿到一些现成的元件,并打算在您的应用程式中使用它们的话,您不应该直接将这些元件耦合至您的应用程式上,例如:上面的作法会让您的应用程式直接与多个元件耦合,这种作法不但与元件的依赖度高,日后要修改应用程式本身,或是更
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=277&extra=page%3D2在 Gof 的书中对Proxy模式的目的给定为:为其它的物件提供一种代理,以控制对这个物件的访问。由这句话所延伸出来的意思是,根据您的目的不同,您的代理物件将负有不同的责任,因为产生多种不同的代理情况。根据不同的代理目的,而有不同的代理情况,在Gof中所举的一个例子是VirtualProxy,当中举一个文档中内嵌图片的例子,假设您的图片是在文档分页的后面,一开始您并不用直接载入图片,而使用一个虚代理物件,代替图片被载入,以求开启一个文档的时候,速
阅读全文
摘要:http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=276&extra=page%3D2在 Gof 的书中指出,Flyweight的目的在于运用共享技术,使得一些细粒度的物件可以共享。Flyweight在牛津字典中的解释是"boxer of the lightest class"。意思是特轻量级拳击手?其实应该是取"thelightestclass"这部份的解释,一个特轻量级类别,这个类别所产生的物件可以共用在每一个场合(context),并依场合资讯表现物件外观。在书中所举出的例子是文档编辑器中的字元物件,若每个字元物件会包括字元
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=41&extra=page%3D3给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。适用性当有一个语言需要解释执行,并且你可将该语言中的句子表示为一个抽象语法树时,可使用解释器模式。而当存在*下情况时该模式效果最好:1.该文法简单对于复杂的文法,文法的*层次变得庞大而无法管理。2.效率不是一个关键问题最高效的解释器通常不是通过直接解释语法分析树实现的,而是首先将它们转换成另一种形式。参与者1.AbstractExpression(抽象表达式)声
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=40&extra=page%3D3将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的*作。适用性1.抽象出待执行的动作以参数化某对象。2.在不同的时刻指定、排列和执行请求。3.支持取消操作。4.支持修改日志,这样当系统崩溃时,这*修改可以被重做一遍。5.用构建在原语操作上的高层操作构造一个系统。参与者1.Comma*d声明执行操作的接口。2.ConcreteCommand将一个接收者对象绑定于一个动作。调用接收者相应的操作,以实现E
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=42&extra=page%3D3给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。适用性1.访问一个聚合对象的内容而无需暴露它的内部表示。2.支持对聚合对象的多种遍历。3.为遍历不同的聚合结构提供一*统一的接口(即,支持多态迭代)。参与者1.Iterator迭代器定义访问和遍历元素的接口。2.ConcreteIterator具*迭代器实现迭代器接口。对该聚合遍历时跟踪当前位置。3.Aggregate聚合定义创建相应迭代器*象的接口。4.Con
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=108&extra=page%3D3引言: 设计模式是经验的文档化。它是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。更通俗的来说,它是一个问题/解决方案对。一旦我们掌握了设计模式,就等于拥有了一支强有力的专家队伍。它甚至能够使面向对象的新手利用前人的经验找出职责明确的类和对象,从而获得优雅的解决方案。由于设计模式也是重构的目标,如果在设计的初期适当地引入设计模式,可以减少重构的工作量。 但是,我们也不能陷入模式的陷阱,为了使用模式而去套模式,那样会陷入形式主义。我们在
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=107&extra=page%3D3基本概念 Singleton是一种创建性模型,它用来确保只产生一个实例,并提供一个访问它的全局访问点.对一些类来说,保证只有一个实例是很重要的,比如有的时候,数据库连接或Socket连接要受到一定的限制,必须保持同一时间只能有一个连接的存在.再举个例子,集合中的set中不能包含重复的元素,添加到set里的对象必须是唯一的,如果重复的值添加到set,它只接受一个实例.JDK中正式运用了Singleton模式来实现 set的这一特性,大家可以查看java.u
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=109&extra=page%3D3引言 在分层软件体系结构中,服务端程序关注于实现业务逻辑,客户端程序则包含用户界面。服务端程序由客户端程序调用,其请求、响应模式在设计时已经确定,运行时出现问题的概率较小。相反,客户端程序与用户直接交互,虽然有正确规定的操作顺序或模式,但是用户的操作是不可预知的,程序必须处理各种操作错误、加上数据输入有效验证等要求,使得客户端程序的开发成本上升。 因而,一旦有经过充分测试的、甚至是通过验收的用户交互程序GUI,应该尽可能的重用该GUI,以提高软件的可
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=110&extra=page%3D3控制反转(IoC)和依赖项注入(DI)是两种引起极大关注的模式(参见 参考资料)。它们主要用在所谓的 IoC 容器中,这些容器以其他组件的形式将依赖项注入到一个组件中。然而,这两种模式并未定义这些依赖项组件方法的设计方式。在经典的设计中,这些方法中的值对象或数据传输对象用作方法参数并在需要复杂对象时返回值。 本文向您展示还可以对方法签名使用 IoC,从而使方法与值对象解耦。为此,要把方法签名中的值对象替换成接口。我会介绍该方法的一些应用场景。我经常使用这
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=111&extra=page%3D3在东田纳西州寒冷的一天,我的橡皮艇摇摆不定地停靠在一个十六英尺高的瀑布顶上,这个瀑布名叫州界瀑布(State Line Falls)。这条急流因为经常吞噬小船和人而臭名昭著。从顶上望过去,急流拐角处没有什么危险的迹象,但是我知道。几天以来,我在清醒的每一刻心中都记得旅行指南中对它的描述。五个卡车般大小的石块形成了四道狭缝。我只能在穿过急流的前几秒看到整个瀑布。对于这四道狭缝中的三个来说,您的岳母要穿过去可能会太费力、太危险,它们因此而闻名。急流劈波斩浪地
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=140&extra=page%3D3设计模式:design patternjava中有23种设计模式. 一:设计模式是最重要的课程之一,堪称软件界的九阳真经,设计模式是一大套被反复使用,多数人知晓的,经过分类编目的,代码总结,使用设计模式是为了可重用代码.让代码更容易被他人理解,保证代码可靠性。 二:学习设计模式最常见的理由是因为我们可以借其: 1. 复用解决方案----避免重蹈前人的覆辙,从学习他人的经验中获益,用不着为那些总是会重复出现的问题再次设计解决方案. 2. 确定通用术
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=165&extra=page%3D3下面是JDK中有关23个经典设计模式的示例,在stakeoverflow也有相应的讨论:http://stackoverflow.com/questions/1673841/examples-of-gof-design-patternsStructural(结构模式)Adapter:把一个接口或是类变成另外一种。 java.util.Arrays#asList() javax.swing.JTable(TableModel) java.io.InputS
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=164&extra=page%3D3Java常用的设计模式创建型模式 1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。 2、BUILDE
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=202&extra=page%3D3我们应该从这七个方面去了解和掌握设计模式 1、 模式的介绍:名字、别名、摘要以及模式的用意 2、 模式的结构:UML图,java源代码 3、 模式的优势和劣势 4、 模式应用的场景 5、 关于模式的实现理论: 说明模式在java中实现的时候会遇到的问题,以及相应的解决方案 6、 举例 7、 相关的模式
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=251&extra=page%3D33、 解决过多依赖实现类问题在该例的测试类Test.java中,通过Fruit apple = new Apple();来获得对象,造成了程序过多的依赖实现类,与实现类过度耦合,学习设计模式后,我们可以考虑采用工厂模式来实现,可对代码进行如下改进:增加工厂类FruitGardener.java,该类的工厂方法如下:publicstatic Fruit factory(String fruitType) ...{if (fruitType.equalsIg
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=250&extra=page%3D3我们在发现问题到解决问题这个过程中,常会发现很多问题是重复出现的,或是某个问题的变体,外在不同,而本质相同,建筑学上如是,软件行业也是,这些问题的本质就是模式。有人说,设计模式并不是初学者能够理解的,当他们的编程经验到了一定程度,便迫切的需要设计模式来完善自己的代码、优雅自己的设计,以及减少重复编码,这句话也是蛮有道理的,以我的亲身经历来说,当刚开始编程时,拿起那本设计模式的书,郁郁寡欢,将该书搁于书架两年后再次捧起,如遇知音。本文以我在以往项目中遇到的
阅读全文
摘要:现在你对“什么是设计模式”已经有了感性认识,也许有人会问:“为什么要学习设计模式呢?”原因有很多,一些非常明显,而另一些则不那么明显。学习模式最常见的理由是因为我们可以借其:● 复用解决方案——通过复用已经公认的设计,我能够在解决问题时取得先发优势,而且避免重蹈前人覆辙。我可以从学习他人的经验中获益,用不着为那些总是会重复出现的问题再次设计解决方案了。● 确立通用术语——开发中的交流和协作都需要共同的词汇基础和对问题的共识。设计模式在项目的分析和设计阶段提供了共同的基准点。模式还为我们提供了观察问题、设计过程和面向对象的更高层次的视角,这将使我们从“过早处理细节”的桎梏中解放出来。等你读完本书
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=253&extra=page%3D3设计模式是面向对象编程的热门话题之一,越来越多的开发人员认识到设计模式的重要性。采用各种语言实现设计模式的文章也越来越多,但是很多开发人员发现很难将设计模式与实际开发中需要解决的具体问题相联系。因为使用设计模式的难点往往不在于模式的实现,而在于很难确定哪种模式可以在现实的应用场景中采用,从而导致了在现实的项目中,面对客户的压力,我们总是采用最直截了当的方法解决问题,来不及多考虑这些方法的优劣,即使明知将带来更大的麻烦也必须如此。有些时候因为选择了不恰当的
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=256&extra=page%3D3如果你的应用基于容器,那么Singleton模式少用或者不用,可以使用相关替代技术 Singleton模式看起来简单,使用方法也很方便,但是真正用好,是非常不容易,需要对Java的类 线程 内存等概念有相当的了解CoR的优点: 因为无法预知来自外界(客户端)的请求是属于哪种类型,每个类如果碰到它不能处理的请求只要放弃就可以。 缺点是效率低,因为一个请求的完成可能要遍历到最后才可能完成,当然也可以用树的概念优化。 在Java AWT1.0中,对于鼠标按
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=255&extra=page%3D3最近一直在看《Design Patterns: Elements of Reusable Object-Oriented Software》这本书,不知道看过这本书的人是不是有摸不到头绪,无处下手的感觉, OK,和我一样/hand. 书里面讲述的23种模式经常把我弄的一蹋糊涂,这本书不看个三、四遍以上是很难理解的, 而且即便看了几遍, 也是很难把握住精髓。 里面讲解的例子是用C++和SMALLTALK这两种OO语言。对于我这种对C++半生不熟的笨鸟来说
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=39&extra=page%3D4为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这*子系统更加容易使用。适用性1.当你要为一个*杂子系统提供一个简单接口时。子系统往往因为不断演化而变得越来越复杂。大多数模式使用时都会产生更多更小的类。这使得子系统更具可重用性,也更容易对子系统进行定制,但这也给*些不需要定制子系统的用户带来一些使用上的困难。Fa*ade可以提供一个简单的缺省视图,这一视图对大多数用户来说已经足*,而那些需要更多的可定制性的用户可以越
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=257&extra=page%3D3目前整个开发社区对AOP(Aspect Oriented Programing)推崇备至,也涌现出大量支持AOP的优秀Framework,--Spring, JAC, Jboss AOP 等等。AOP似乎一时之间成了潮流。Java初学者不禁要发出感慨,OOP还没有学通呢,又来AOP。本文不是要在理论上具体阐述何为AOP, 为何要进行AOP . 要详细了解学习AOP可以到它老家http://aosd.net去瞧瞧。这里只是意图通过一个简单的例子向初学者展示
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=37&extra=page%3D4将对象组合成树形结构以表示"部分-整体"的层次结构。"Composite使得用户对单个对象和组合对*的使用具有一致性。"适用性1.你想表示对象的部分-整*层次结构。2.你希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。参与者1.Component为组合中的对象声明接口。在适当的情况下,实现所有类共有接口的缺省行为。声明一个接口用于访问和管理Component的子组件。(可选)在递归结构中定义一个接口,用于访问一个父部件,并在合*
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=38&extra=page%3D4动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模*相比生成子类更为*活。适用性1.在不影响其他*象的情况下,以动态、透明的方式给单个对象添加职责。2.处理那些可以撤消的职责。3.当不能采用生成子类的方法进行扩充时。参与者1.Component定义一个对象接口,可以给这些对象动态地添加职责。2.ConcreteComponent定义一个对象,可以给这个对象添加一些职责。3.Decorator维持一个指向Component对象的指针,并
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=36&extra=page%3D4将抽象部分与它*实现部分分离,使它们都可以独立地变化。适用性1.你不希望在抽*和它的实现部分之间有一个固定的绑定关系。例如这种情况可能是因为,在程序运行时刻实现部分应可以*选择或者切换。2.类的抽象以及它的实现都应该可以通*生成子类的方法加以扩充。这时Bridge模式使你可以对不同的抽象接口和实现部分进行组合,并分别对它们进行扩充。3.对一个抽象的实现部分的修改应对客户不产生影响,即客户的代码不必重新编译。4.正如在意图一节的第一个类图中所示的那样,有许多
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=34&extra=page%3D4提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。适用性1.一个系统要独立于它的*品的创建、组合和表示时。2.一个系统要由多个产品系列中的一个来配置时。3.当你要强调一系列相关的产品对象的设计以便进行联合使用时*4*当你提供一个产品类库,而只想显示它们*接口而不是实现时。参与者1.Ab*tractFactory声明一个创建抽象产品对象的操作接口。2.ConcreteFactory实现创建具体产品对象的操作。*.AbstractProduc
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=35&extra=%26page%3D4将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口*兼容而不能一起工作的那*类可以一起工作。适用性1.你想使*一个已经存在的类,而它的接口不符合你的需求。2.你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那*接口可能不一定兼容的类)协同工作。*.(仅适用于对象Adapter)你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。参与者1.Targe
阅读全文
摘要:定义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使一个类的实例。适用性1.当一个类不知道它所必须创建的对象的类的时候。2.当一个类希望由它的子类来指定它所创建的对象的时候。3.当*将创建对象的职责委托给多个帮助*类中的某一个,并且*希望将哪一个帮助子类是代理者这一信息局部化的时候。参与者1.Product定义工厂方法所创建的对象的接口。2.ConcreteProduct实现Product接口。3.Creator声明工厂方法,该方法返回一个Product类型的对象*Creator也可以定义一个工厂方法的缺省实现,它返回一个缺省的ConcreteProduct对象。
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=386&extra=page%3D1adb shell sdutil mount /sdcard 插卡adb shell sdutil unmount /sdcard 拔卡
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=387&extra=page%3D1学习Android差不多已经两周多了,自己认为Android的框架还是蛮不错了,只是提供的类库的的继承关系和方法的命名实在不是很爽,这方面负责Android Google的工程师可能还要向Sun学习,一个类好几十个方法甚至上百个,有的时候头都找晕了。好了,一个初学者的态度来将好了,怎么才能快速入门呢?如果有一年以上的工作经验学习Android,如果有过J2EE工作经验的更好,因为J2EE整天有很多xml的配置文件,至少看见了这么多的xml配置文件不会晕头
阅读全文
摘要:http://35java.com/zhibo/forum.php?mod=viewthread&tid=388&extra=page%3D1在Android开发中对资源的引用是很重要的内容,看一个Android工程结构的好与坏,其实看看工程结构的资源文件的相互关系就大概可以看出来了,个人觉得学习好Android,资源文件是很重要的部分,这里讲的都是些入门级别的知识点,耐下心思看哦,呵呵。1,三种资源文件形式。资源文件之间的相互引用自然是基础的基础,三种形式(android:xxx/yyy,@xxxx/yyy,?xxx)的区别要彻底地弄明白。2,资源文件的属性命名。资源文件属性的命名(其实大部
阅读全文
摘要:简介bada – 三星智能手机平台-可以安装在不同显示器的不同设备上。下面的这个表格说明了Wave(第一个bada电话)和WaveWQ(Wave525, Wave533, Wave723)的区别。针对这两种受支持的分辨率,本文定义了依赖于分辨率的UI元件的尺寸(如格式组件,UI控件和图标)。支持的分辨率bada支持WVGA和WQVGA分辨率。在WQVGA分辨率中,组件的尺寸是WVGA分辨率的尺寸的一半。注意,字型不遵循这一规则:为了提高可读性,WQVGA中字型预设的大小可以比WVGA中字型尺寸的50%略大。这就意味着要为每个设备单独设置字型尺寸。显示器分辨率决定:ü格式控制元素尺寸(指示器,标
阅读全文
摘要:使用BluetoothAdapter类,你能够在Android设备上查找周边的蓝牙设备然后配对(绑定),蓝牙通讯是基于唯一地址MAC来相互传输的,考虑到安全问题Bluetooth通讯时需要先配对。然后开始相互连接,连接后设备将会共享同一个RFCOMM通道以便相互传输数据,目前这些实现在Android 2.0或更高版本SDK上实现。 一、查找发现 findding/discovering devices 对于Android查找发现蓝牙设备使用BluetoothAdapter类的startDiscovery()方法就可以执行一个异步方式获取周边的蓝牙设备,因为是一个异步的方法所以我们不需要考虑
阅读全文
摘要:近来很多人说S8500不是智能机,那我现在郑重告诉你:S8500是智能手机,并且是一流的智能手机,我们并不能以可不可以后台远行程序作为判断是否智能手机的标准!我们知道,每一个智能手机操作系统的背后,都有一家顶级软件开发商。例如Andriod背后的谷歌、Windows Mobile背后的微软、ios背后的苹果以及S60背后的Symbian。bada系统由三星推出,然而,三星显然不以软件见长。那么,主导bada技术的是谁呢?去年11月bada发布,三星搞了个很热闹的发布会。此后不到一周,Linux开发组织―E17悄悄宣布,他们开始为三星做事了。那么,E17是什么? E17是Enlightenmen
阅读全文
摘要:1。 SDK下载:http://developer.bada.com/apis/docs/commonpage.do?menu=MC01040000&mtb1=&mtb2=看网上很多人抱怨官网的SDK无法下载下来,我当时是用迅雷下的,花了两天时间才下下来 2。 一些控件的使用以下的例子没有特殊说明则都是基于bada SDK 1.0.01 图片加载函数 Osp::Graphics::Bitmap* BaseForm::GetBitmapN(const Osp::Base::String& name) { Bitmap* pBitmap = null; Image* pImage = new
阅读全文
摘要:很多网友对于Android全局配置文件AndroidManifest.xml不是很熟悉,今天我们就一起看下它完整的结构以及每个节点的作用。在我们日常的开发中都少不了下面的配置,每创建一个Activity、Service都离不开这个全局配置文件,深入的了解可以简化程序代码以及提高程序的维护性。 在最外层包含了包名如 package="cn.android123.demo" 、软件的版本号 android:versionCode="1" 以及 android:versionName="1.0" ,里面一层的application分支中将可能包含Android程序的四种对象 Activity、Se
阅读全文
摘要:前面两篇文章中我们提到了有关Android平台蓝牙的配对、发现、启用等操作,本文开始通过BluetoothSocket类建立有关蓝牙通讯的套接字。从Android 2.0开始支持这一特性,蓝牙和LAN一样通过MAC地址来识别远程设备,建立完通讯连接RFCOMM通道后以输入、输出流方式通讯。 一、连接设备 蓝牙通讯分为server服务器端和client客户端,它们之间使用BluetoothSocket 类的不同方法来获取数据, 1. 作为服务器 如果一个设备需要和两个或多个设备连接时,就需要作为一个server来传输,在android中提供了BluetoothServerSocket类来
阅读全文
摘要:很多时候想要设计漂亮的Android UI,使用Android自带的控件无法满足我们的需要就要考虑自绘控件,在Android界面显示类View,可以通过继承扩展重写相关方法来实现我们的图形绘制。 首先我们需要了解下View类的底层实现,在SDK中我们可以看到View直接继承于Java的基类Object,实现了图形绘制和按键事件Drawable.Callback KeyEvent.Callback的相关方法,我们自绘时主要实现其内部的onDraw方法,相关的界面计算可以重写onMeasure方法,对于相关的按键可以重载onKeyDown、onKeyUp以及onTouchEvent等,下面and
阅读全文
摘要:很多网友不明白如何在Android平台上捕获Back键的事件,Back键是手机上的后退键,一般的软件不捕获相关信息可能导致你的程序被切换到后台,而回到桌面的尴尬情况,在Android上有两种方法来获取该按钮的事件。 1.直接获取按钮按下事件,此方法兼容Android 1.0到Android 2.1 也是常规方法,直接重写Activity的onKeyDown方法即可,代码如下: @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK &&
阅读全文
摘要:今天我们继续介绍Android平台底层绘图类的相关内容,在Android UI开发专题(一) 之界面设计中我们介绍了有关Android平台资源使用以及Bitmap相关类的操作,接下来将会以实例的方式给大家演示各种类的用处以及注意点。今天我们继续了解android.graphics包中比较重要的绘图类。 一、 android.graphics.Matrix 有关图形的变换、缩放等相关操作常用的方法有: void reset() // 重置一个matrix对象。 void set(Matrix src) //复制一个源矩阵,和本类的构造方法 Matrix(Matrix src) 一样 b
阅读全文
摘要:本次我们主要讲解Android平台下的各种Drawable,这里在SDK的android.graphics.drawable包下面可以看到有各种Drawable类多达十几种,它们到底之间有什么关系和区别呢? 一、AnimationDrawable 顾名思义该类主要表示动画的图形类,可以实现逐帧播放的效果,下面代码示例如下 1. 定义一个cwj_animation.xml 放到res/drawable 目录下,其中定义的属性duration为延时,单位为毫秒,而oneshot属性表示是否仅播放一次,内容为:1 animation-list android:id="selected" an
阅读全文
摘要:最近使用Eclipse配合ADT开发Android感觉到bug还是很多的,问题比Symbian还要多,突然感觉到微软真的是处处想到开发者。Eclipse的稳定性和运行效率再次体现出了Java的不足。除了 R.id.XXX cannot be resolved解决方法 这样的问题解决了外,新问题来了,编译时总是报错,clear build后,重启Eclipse还是错误。奇怪了,仔细用FileMon监视了下文件变化,Eclipse和ADT竟然在C:\Documents and Settings\android123.com\Local Settings\Application Data\Andro
阅读全文
摘要:近期很多网友对Android用户界面的设计表示很感兴趣,对于Android UI开发自绘控件和游戏制作而言掌握好绘图基础是必不可少的。本次专题分10节来讲述,有关OpenGL ES相关的可能将放到以后再透露。本次主要涉及以下四个包的相关内容: android.content.res 资源类 android.graphics 底层图形类 android.view 显示类 android.widget 控件类 一、android.content.res.Resources 对于Android平台的资源类android.content.res.Resources可能很多网友比较陌生,一起
阅读全文
摘要:用eclipse+ADT作为android开发工具,可以说是很方便的,在HelloActivity小程序里我们就感觉到eclipse功能的强大。那么,我们可以用eclipse来开发android源码吗?如果我们直接把android源码里一个工程导入eclipse,一般来说都会出现错误,说许多类库(包)找不到。 今天找到关于怎样使用eclipse来开发android源码的官方文档: https://sites.google.com/a/android.com/opensource/using-eclipse 从该文档和实践可以总结出几点: 1、可以使用eclipse来编辑JAVA程序、检
阅读全文
摘要:以HelloActivity程序为例,简单介绍Android应用程序的框架。希望读者可以根据HelloActivity,自己写出一个Andorid的应用程序。 HelloActivity工程的源代码在Android目录的development/samples/HelloActivity/中,代码的结构如下所示:development/samples/HelloActivity/|-- Android.mk|-- AndroidManifest.xml|-- res| |-- layout| | `-- hello_activity.xml| `-- values| `-- strings.x
阅读全文
摘要:上文说到request是接收,是通过ril_event_loop中的多路复用I/O,也对初始化做了 分析.现在我们来仔细看看这个机制如何运转。 ril_event_set负责配置一个event,主要有两种event:ril_event_add添加使用多路I/O的event,它负责将其挂到队列,同时将event的通道 句柄fd加入到watch_table,然后通过select等待.ril_timer_add添加timer event,它将其挂在队列,同时重新计算最短超时时间.无论哪种add,最后都会调用triggerEvLoop来刷新队列,更新超时值或等待对象. 刷新之后, ril_even
阅读全文
摘要:第一部分 Camera概述Android的Camera包含取景器(viewfinder)和拍摄照片的功能。目前Android发布版的Camera程序虽然功能比较简单,但是其程序的架构分成客户端和服务器两个部分,它们建立在Android的进程间通讯Binder的结构上。 以开源的Android为例,Camera的代码主要在以下的目录中:Camera的JAVA程序的路径:packages/apps/Camera/src/com/android/camera/在其中Camera.java是主要实现的文件frameworks/base/core/java/android/hardware/Camer
阅读全文
摘要:Android作为一个移动设备的平台,其软件层次结构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application)。根据Android的软件框图,其软件层次结构自下而上分为以下几个层次: 第一、操作系统层(OS) 第二、各种库(Libraries)和Android 运行环境(RunTime) 第三、应用程序框架(Application Framework) 第四、应用程序(Application) 以下分别介绍Andoid各个层次的软件的重点及其相关技术: ● 操作系统层(OS) Android使用Linux2.6作为操作系统,Linux2.6是一
阅读全文
摘要:1. Android是什么? Android 是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序 —— 移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。谷歌与开放手机联盟合作开发了 Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达和 T-Mobile 在内的 30 多家技术和无线应用的领军企业组成。 Android 作为谷歌企业战略的重要组成部分,将进一步推进"随时随地为每个人提供信息"这一企业目标的实现。 2. Android用什么语言开发的? Android的SDK(software developm
阅读全文
摘要:在Android的应用程序开发中,通常使用的是JAVA语言,除了需要熟悉JAVA语言的基础知识之外,还需要了解Android提供的扩展的JAVA功能。 在一般的JAVA应用中,如果需用引用基础类库,通常需要使用如下的方式:import javax.swing.*; 以上代码表示了引用JAVA的GUI组件Swing,javax.swing即JAVA中的一个包。 android提供一些扩展的JAVA类库,类库分为若干个包,每个包中包含若干个类。例如:在Android中计算器是一个相对简单的程序,其入口程序文件为Calculator.java,该文件包含了以下内容:package com.an
阅读全文
摘要:以HelloActivity程序为例,简单介绍Android应用程序的框架。希望读者可以根据HelloActivity,自己写出一个Andorid的应用程序。 HelloActivity工程的源代码在Android目录的development/samples/HelloActivity/中,代码的结构如下所示:development/samples/HelloActivity/|-- Android.mk|-- AndroidManifest.xml|-- res| |-- layout| | `-- hello_activity.xml| `-- values| `-- strings.x
阅读全文
摘要:Q: Android应用的入口点是什么,为什么main()没有执行?A: 在Android应用中无论是Activity或Service入口点均为onCreate,我们在SDK文档中的生命周期可以看得很清楚,当然Android123建议大家通过打印log或单步跟踪的方式了解Android程序的执行过程,了解onCreate、onStart、onPause都是在什么时候执行的。Q: Android能使用Qt开发吗?A: Qt目前已经被Nokia收购,同时目前Qt运行库还无法使用Android NDK编写完成,所以目前Android别指望使用Qt去开发了。Q: 如何关闭GPS?A: 直到Androi
阅读全文
摘要:在Android 2.2中新增了一个android.app.admin.DeviceAdminInfo类,可以帮助我们以管理员权限获取一个Package信息,DeviceAdminInfo类有一个构造方法为DeviceAdminInfo(Context context, ResolveInfo receiver) 来实例化该类,参数一为目标PackageManager的Context。ActivityInfogetActivityInfo()获取该Context的Activity信息,返回一个ActivityInfo对象ComponentNamegetComponent()//获取这个Pack
阅读全文
摘要:很多入门Android开发者网友还是喜欢看书学习,对于SDK文档和ApiDemo等还无法快速了解,Android123在元旦给大家推荐两本入门级别的图书,作为图灵教育的书籍在质量等方面还有有保证的。第一本为 《Android开发入门教程》 是原书 Beginning Android 2 的翻译版本 ,定价59.00元一般在44元左右可以买到。第二本为 《精通Android 2》是原书 Pro Android 2的翻译版本,定价89.00元,一般66元左右可以买到。这两本书整体内容比较简单,对于Android开发的常见问题都已经提到,经Android123试读国外原版描述问题等方面都很到位准确,
阅读全文
摘要:随着2011年的到来Android将会迎来巅峰时刻,目前整体系统的完善度情况已经大大超越了竞争对手,Android123就2011年就开发者一些前景分析,2011年1月6日将在拉斯维加斯举行一年一度的CES展,对于Android来说除了各个厂商展出基于Android 2.3的新一代智能手机外,焦点将锁定在Android平板电脑上。 HTC将推出自己的首款Android平板电脑 - HTC Scribe这是一款10英寸的平板,分辨率为 1280 x 720 像素,使用NVIDIA Tegra 2 A9架构的双核处理器,拥有2GB的RAM内存,和32GB的SSD支持microSD扩展,使用Andr
阅读全文
摘要:Android 1.0 第一版商用操作系统Android 1.1 更新了部分API,新增一些功能,修正了一些错误,同时增加com.google.android.maps包Android 1.5 智能虚拟键盘 使用widgets实现桌面个性化 在线文件夹(Live Folder)快速浏览在线数据 视频录制和分享 图片上传 更快的标准兼容浏览器 Voice search 语音搜索 立体声蓝牙和免提电话 Android 1.6 完全重新设计的Android Market,可以显示更多的屏幕截图 手势支持,可以让开发者生成针对某个应用程序的手势库 支持CDMA网络:中国电信的用户可以期待EVDO的An
阅读全文
摘要:Java™ 语言是 Android 开发人员所选的工具。Android 运行时使用自己的虚拟机 Dalvik,这并不是多数程序开发人员使用的普通 Java 虚拟机。Dalvik 支持 Java 编程语言的大部分功能——但并不是全部。eBay软件架构师Michael Galpin写了一篇文章《Gourmet Java technology for Android applications》,通过本文,您将学习高级 Java 功能及其如何在 Android 中实现。这些功能包括并发性、联网和数据库访问。IBM developerWorks上发布了本文的中文版,现转载于此。全文如下:准备开始本文介绍
阅读全文
摘要:简介 难以想象还有哪种技术比移动电话更流行。大量的平台在销售和心理份额方面争占此行业的顶级市场。设备是高级的工程样品,真正让它们流行起来的动力在于这些平台上可用的大量应用程序带来的用户体验。具体来说,iPhone 和 Android 平台是最新的设备,点燃了人们的消费欲望。 常用缩略语 API: 应用程序编程接口 CSS: 层叠样式表 HTML: 超文本标记语言 IDE: 集成开发环境 SDK: 软件开发工具包 UI: 用户界面 XML: 可扩展标记语言 对移动用户可用的大部分应用程序是由移动开发人员通过各平台供应商提供的核心 SDK 编写的。移动设备的流行离不开大量天才的 web 技术程序员
阅读全文
摘要:整理了一下手中的iPhone开发网站、论坛和博客,精选了这10个常去的网站。其中有2篇教学文章,由于非常经典,于是单列出来,与其网站并列。建议新入行的朋友在看教学文章的同时多上论坛,与大家交流,偶尔看看别人的自曝,自己也会信心倍增。另外,实践最重要,首先行动起来。http://cocoachina.com/ 大量iPhone开发资料,教学,经验,还有自曝。http://www.javaeye.com/forums/board/mobile iPhone开发论坛,人气鼎盛,大量自曝,还有Android的讨论http://developer.apple.com/iphone/ 苹果iPhone开发
阅读全文
摘要:在Android 应用程序之间数据共享—-ContentResolver中,已经说明了Android是如何实现应用程序之间数据共享的,并详细解析了如何获取其他应用程序共享的数据。ContentProviders存储和检索数据,通过它可以让所有的应用程序访问到,这也是应用程序之间唯一共享数据的方法。那么如何将应用程序的数据暴露出去?通过以前文章的学习,知道ContentResolver是通过ContentProvider来获取其他与应用程序共享的数据,那么ContentResolver与ContentProvider的接口应该差不多的。其中ContentProvider负责组织应用程序的数据;
阅读全文
摘要:概述 Android 包括一个应用程序框架、几个应用程序库和一个基于 Dalvik 虚拟机的运行时,所有这些都运行在 Linux® 内核之上。通过利用 Linux 内核的优势,Android 得到了大量操作系统服务,包括进程和内存管理、网络堆栈、驱动程序、硬件抽象层以及与本文主题 —— 安全性 —— 相关的服务。 常用缩写词 ADT:Android 开发工具 API:应用程序编程接口 IDE:集成开发环境 JDK:Java 开发包 URL:统一资源标识符 XML:可扩展标记语言 前提条件 要跟随本文,需要具备以下技能和工具: 基本了解 Java™ 技术和如何使用 Eclipse(或者您喜欢的
阅读全文
摘要:必须条件:99$(没这个就不用再往下看了)我的系统是10.5.7 不同版本的系统,可能有点小小的区别首先登录到http://developer.apple.com/iphone/index.action如果已经购买了99$, 登录进去后会看到如下地方(图1) 点进去会看到如下界面(图2) 这里我要提一下,公司和个人的$99Team里面的内容是有所不同的(至少我发现有不同)公司的Team下面可以加入Member而个人的不能加入Member只能是一个人,不过这里并无大碍,不妨碍我们下面的内容。点击进入 Certificates 看到如下内容(图3) 点击图中红色部分 会下载下来一个名字为Apple
阅读全文
摘要:多线程在各种编程语言中都是难点,很多语言中实现起来很麻烦,objective-c虽然源于c,但其多线程编程却相当简单,可以与java相媲美。这篇文章主要从线程创建与启动、线程的同步与锁、线程的交互、线程池等等四个方面简单的讲解一下iphone中的多线程编程。一、线程创建与启动线程创建主要有二种方式:- (id)init; // designated initializer- (id)initWithTarget:(id)target selector:(SEL)selector object:(id)argument;当然,还有一种比较特殊,就是使用所谓的convenient method,这
阅读全文
摘要:一. palm开发中常用的命令 1. 打包命令:palm-package 文件名 如:HelloWorld palm-package HelloWorld 2. 安装命令:palm-install 应用安装包名 如:com.palm.mycompany.helloworld_1.0.0_all.ipk palm -install com.palm.mycompany.helloworld_1.0.0_all.ipk 3. 启动命令:palm-launch 应用名称 如:com.palm.mycompany.helloworld palm -launch com.palm.mycom
阅读全文
摘要:20世纪80年代就出现了Objectvie-C.千年万精油hello Objective-C#importFoudation/Foundation.h //告诉编译器查看Fondation框架中的Foudation.h头文件。int main(int argc,const char*arg【】){ NSLog(@“hello,Object-C!”); // NSLog()接受一个字符串作为其第一个参数作为其第一个参数, 该字符串包含格式说明符 return(0); }//main.m----object-C .c-----c编译器.cpp-----C++ .m代表message所有这些编
阅读全文
摘要:Apple为开发者提供了大量的库,库中包含的各种类的内存管理策略如下。1.如果对象使用-初始化方法创建,那么对象仅仅对引用计数加1,也就是内部执行一次retain操作。2.如果对象使用+初始化对象(相当于java或者C++的static方法),那么对象不但对引用计数加1,还自动执行autorelease操作。3.使用@property (retain) 声明的属性,将会在第一次赋值时,执行retain操作。本文转自www.35java.com
阅读全文
摘要:1.完全没有不懂编程语言的人群:建议先从C语言开始,主要学习它的语法,写一些经典的小算法,锻炼逻辑思维能力,不需要了解的太深,也无需关心类库函数.推荐书籍:谭浩强-《C程序设计》(谭浩强)第三版[PDF]pdf下载地址:http://www.verycd.com/topics/2818277/算法学习:2.有过编程经验而无Java开发的人群:Java基础[J2SE]:(1)孙卫琴 - JAVA面向对象编程[新手推荐]下载地址:http://www.verycd.com/topics/122219/(2)JAVA2核心技术下载地址:http://www.verycd.com/topics/113
阅读全文
摘要:Activities提供了一种方便管理的创建、保存、回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int), dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog). onCreateDialog(int):当你使用这个回调函数时,Android系统会有效的设置这个Activity为每个对话框的所有者,从而自动管理每个对话框的状态并挂靠到Activity上。这样,每个对
阅读全文
摘要:作者:Confach 发表于March 24,2006 18:05 pm 版权信息:可以任意转载, 转载时请务必以超链接形式标明文章原始出处和作者信息. http://www.cnblogs.com/confach/articles/358028.html[url=]第2[/url]章编写BlackBerry Java应用程序[p=19, null, left]应用程序管理[p=19, null, left]编写一个例程[p=19, null, left]重用一般代码[p=19, null, left]使用BlackBerry IDE[p=19, null, left]使用命令行[p=19,
阅读全文
摘要:由于BB项目需要,特定制了Sliderbar,BB上没有这个组件,所以只能自己动手。请看代码 :Java代码 package cc.mdev.seek; import net.rim.device.api.math.Fixed32; import net.rim.device.api.system.EncodedImage; import net.rim.device.api.ui.Field; import net.rim.device.api.ui.Graphics; import net.rim.device.api.ui.TouchEvent; import net.rim.devic
阅读全文
摘要:版权所有,欢迎转载,转载请注明 : SinFrancishttp://mdev.cc BB的项目可以使用Ant进行编译,并进行发布,不过需要安装 (-_-!!!装和B 不能连在一起,JE提示有装 B 的嫌疑) BB-ANT-TOOLS : http://bb-ant-tools.sourceforge.net/最近是使用python + ant 的形式通过用户请求自动发布用户想要的BB程序,以下是部分的ANT脚本:详细的解释均在注释中BUILD.PROPERTIES资源文件Xml代码 app.name=Testbin.dir=${jde.home}bin iconicon.path=icon.
阅读全文
摘要:现在移动web很火啊,大家都在预言这个东西大有可为。 jQuery Mobile是专门为mobile优化过的js toolkit,demo在这里:http://jquerymobile.com/demos/1.0a1/。玩了会儿,功能很强大啊。1)界面或者CSS不错,一看就是模仿iOS,比如工具栏,还有很宽的按钮(这样用户比较容易点到),视图的切换动画,加载动画,一切都很iphone。不过,看多了就有点乏味。如果是android用户访问这个UI会更加反感吧。2)cache做的不错,视图切换时速度很快,显然对已经加载的页面做了cache。这是AJAX之后提高用户体验的一个好办法,不然一个小的动作
阅读全文
摘要:目前公司有一个项目正处于技术可行性研究阶段。希望能听听大家的意见。资金方面:最多投资50万-200万软件方面:要求可以开机启动;可以放置于桌面;可以对手机本地功能进行尽可能多的控制。(多么完美的画面啊!)可以通过无线网络从服务器获取信息。软件功能的复杂度大约相当于一个中型门户网站。客户群:中移动客户。测试手机:oms3个,android2个,塞班2个,wm2个,linux1个。人员配置:已经拥有开发人员3名,精通java,b/s,js。美工1名。时间:大约半年如果拥有以上资源,此项目从技术角度来讲,离成功还有多远?我个人认为可能存在如下风险点。人员技能:缺乏移动设备开发经验,前期技术攻关存在困
阅读全文
摘要:@interface Event : NSManagedObject {}@property (nonatomic, retain) NSDate *creationDate;@property (nonatomic, retain) NSNumber *latitude;@property (nonatomic, retain) NSNumber *longitude;@end#import "Event.h"@implementation Event@dynamic creationDate;@dynamic latitude;@dynamic longitude;@end从上面我们能看出
阅读全文
摘要:Android的开发现在是如火如荼,逞现在不是很忙了,学习了下,这里记录下了在windows在如何搭建Android开发环境,对自己是个记录,对新入门的兄弟姐妹们可以参考一下!(1)安装JDK,省略。(2)下载Android SDK并配置。可以到http://www.android123.com.cn/sdkxiazai/上下载,下载好后,解压缩,配置SDK,在Windows机器上,右键单击我的电脑,选择属性-高级,点“环境变量”按钮,修改“系统变量”下面的Path变量,把SDK tools的真实路径加入其中(即Android sdk 解压后的文件夹下的tool路径 在这里我是D:\andr
阅读全文
摘要:用过delphi的童鞋应该比较清楚frm文件,就是用鼠标拖拖拉拉,就能设计好的那个窗体所生成的文件。在使用xcode进行开发时,也用了同样的形式,把复杂的页面通过简单的拖拉以及属性设置来设计出来,然后序列化到Nib文件里,等程序运行的时候,加载进来就可以了。在xcode进行窗体开发时,有两种形式把Nib文件反序列化。一种是通过设置view controller的NIB File属性。另外一种便是通过initWithNibName方法。第二种其实没什么好说的,就是读取nib文件,加载,反序列化,生成实例,显示。对于第一种,有些地方做的有些蹊跷,百思不得其解。假设要为主窗体Window添加一个Vi
阅读全文
摘要:关于如何优化activity的启动速度, view 的绘制速度, 可参考这个sdk里的文档。 android-sdk-windows-1.5_r1/docs/resources/articles/window-bg-speed.html。看完后你就知道 android:windowBackground 太重要了,影响到绘制效率。这里要说的是另外一点, 不是这个windowBackground 。android 为了提高滚动等各方面的绘制速度,可以为每一个view建立一个缓存,使用 View.buildDrawingCache为自己的view 建立相应的缓存,这个所谓的缓存,实际上就是一个Bit
阅读全文
摘要:Android系统框架和上层应用是类java(不是正统的sun java)开发的,实现了自己的java虚拟机dalvik,既然用java虚拟机和java开发,一般都会认为效率低下。其实不然,在基本主流的智能手机的软件平台上,android的执行速度是最快的。那么android效率为什么这么的高呢?特别是一个应用程序的启动时间很短,本文主要从以下个八方面进行分析:1、 资源文件的优化读取。我们知道android在UI开发时有个很大的好处是xml文件来描述UI,这样有个好处是只要修改UI不用修改代码就可以修改界面的布局、显示风格和字体大小等。界面定义变得灵活方便。xml配置UI在qtopia运用也
阅读全文
摘要:使用Jquery有一段时间了,对Jquery轻便、易学易用、方便的DOM操作以及这个框架的设计思想都由衷的赞叹。但是Jquery在设计过程中也有 一些不合理的地方(当然,有些东西见仁见智,可能你并不觉得这不合理),今天看到了一篇文章,觉得写的挺有道理的,我做了一下整理。并不是说Jquery 很差,让大家不要用,而是通过这些内容来更好的了解和使用jQuery。1.each工具的回调函数参数的设计。jQuery.each(obj,callback)通 用遍历方法,可用于遍历对象和数组。不同于遍历 jQuery 对象的 $().each()方法,此方法可用于遍历任何对象。回调函数拥有两个参数:第一个
阅读全文
摘要:7个神奇的jquery 3D插件,让你可以实现一些媲美Flash的动画特效。1. Flip HTML content in 3D用jquery实现的3D翻转效果,支持html内容的翻转。2. Agile Carousel3D效果的jQuery跑马灯特效。3. RotationjQuery旋转3D特效。4. Tag Cloud使用jQuery创建的3D标签云。5. Sphere一个jQuery实现的3D星球。6. Flip!7. Faux 3D Effect
阅读全文
摘要:在回北京的火车上,闲来无事,突然想起了前一段时间学习JQuery的时候的经历,就随手写下来。其实我写JS写了很长的一段时间,大概后2年多吧,但是一直没有使用过JQuery,对它了解的也不多;在我学习它的时候其实对JS已经有一定程度的了解了,不敢说很厉害吧,但是也是中等靠上的水平吧,这正是开始做开发的的2年积累下来的;原来一直在使用Prototype.js做开发,Prototype.js比较侧重于再语法上向Java 靠拢,然后提供了大量的基础运算扩展与封装,对UI这块的扩展一直都不是特别的好;但是JQuery是侧重于(或者是完全的侧重于)UI操作的,而且在语法上比较少见的大量闭包,想要完全的使用
阅读全文
摘要:概述jQuery 是继 prototype 之后又一个优秀的 Javascript 框架。其宗旨是—写更少的代码,做更多的事情。它是轻量级的 js 库(压缩后只有21k) ,这是其它的 js 库所不及的,它兼容 CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。 jQuery 是一个快速的,简洁的 javaScript 库,使用户能更方便地处理 HTML documents、events、实现动画效果,并且方便地为网站提供 AJAX 交互。 jQuery 还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有
阅读全文
摘要:1.功能简要说明:有看到jquery的JQTreeTable插件,在本程序中尽量有参考它的做,基本实现了它的重要的功能。 1.1.支持静态json数据格式 1.2.支持后台代码传递json数据 1.3.支持前台分页(将数据的第一层节点进行分页) 1.4.支持全部展开,全部折叠 1.5.支持显示“自增序列”列 1.6.支持显示“选择按钮”列 详细代码下载地址: http://download.csdn.net/source/1718968 代码含有注释。 本文转自www.35java.com
阅读全文
摘要:今天早上没什么事儿,就整了个jquery效果,就叫jQuery 常用焦点图,可做选项卡切换!这段jquery代码功能比较多,像焦点图、选项卡、文字定时切换等等!下面是焦点图的效果图:演示demo:http://www.daqianduan.com/demo/scroll-commom.html原文:http://www.daqianduan.com/jquery-focus-switch-tab/本文转自www.35java.com
阅读全文
摘要:今天想要一个用JS实现的带时间的日期组件,然后就遇到了它犹如黑暗里的萤火虫,如此闪亮,如此拉风它就是 My97 DatePicker 。也许你都知道了,只是我比较后知后觉 官方推荐优点如下:==============更人性化,更全面的功能==============强大的日期范围限制功能==============自定义事件和丰富的API库==============多语言支持和自定义皮肤支持==============跨无限级框架显示和自动选择显示位置官方demo和文档 http://www.my97.net/dp/demo/index.htm2. 注意事项My97DatePicker目
阅读全文
摘要:配置Extjs开发环境很简单的,完全可以在Html静态页面运行,需要的开发工具也很简单。步骤如下:1:到官方网站http://www.extjs.com/products/extjs/download.php下载必要的核心包。2:解压Extjs3.1.rar文件(本人用的是3.1版本)。3:在Html页面中引入相应文件,如下:Java代码 link rel="stylesheet" type="text/css" href="../Ext/resources/css/ext-all.css" script type="text/javascript" src="../Ext/ext-ba
阅读全文
摘要:每次做项目,最最让我头痛的是系统的程序界面,包括色系搭配、展示样式、内容布局等。其实呢,这个是平面美工(现在叫做界面交互设计师)该考虑的事情。结合实际在项目开发中的情况,后台java代码量与前端代码量(html\css\js等)的比率是1:5,实际后台与前台的开发量是1:9,就是说项目中90%的工作量在前台,后台的代码很多可以通过自动生成来解决,而前台的代码往往是一个页面一个页面做出来的。本文转自www.35java.com
阅读全文
摘要:我们知道标准鼠标有左,中,右三个键。鼠标按下时如何判断按下的是哪个键呢?W3C DOM-Level-2 定义如下W3C DOM 写道During mouse events caused by the depression or release of a mouse button, button is used to indicate which mouse button changed state. The values for button range from zero to indicate the left button of the mouse, one to indicate th
阅读全文
摘要:一直觉得前端开发缺个手册,这是个体力活。不过总得有人来干。今天闲来无事,把一些工具(online和client的)、常用网址、以及经验总结等罗列出来和大家分享下。国外CSS酷站欣赏forcss.Comhttp://www.forcss.comhttp://www.urbantrash.net/cssgallery/http://www.csselite.com/http://www.cssheroes.com/在线工具集 常用Firefox插件 IE下的调试工具 参考手册 批处理工具 IDE及其他工具 Bookmarklet 前端开发者社区及权威网站 推荐订阅的博客和网站 另外还搞了个Fire
阅读全文
摘要:当页面内容很多时,主要是dom的节点很多时,浏览器打开网页的速度主要受dom节点的加载时间影响。我做了一个这样的实验:使用firefox和ie通过在线和离线两种方式打开一个网页(包含一个20000行*10列的表格),验证打开网页的时间。使用firefox打开,server端用时在15s左右,浏览器打开需20s左右;使用ie打开,server端用时4s左右,浏览器打开需6s左右。 时间的计算方法:在server端,在php脚本的开始生成表格之前记录开始时间,在表格输出之后打印用时。浏览器端则在body后记录开始时间,在onload()中提示用时。但这样计算的浏览器打开页面的用时并不准确,自
阅读全文
摘要:· 从零开始学习jQuery (一) 开天辟地入门篇本系列文章将带您进入jQuery的精彩世界,其中有很多作者具体的使用经验和解决方案,即使你会使用jQuery也能在阅读中发现些许秘籍。本篇文章是入门第一篇,主要是简单介绍jQuery,通过简单示例指导大家如何编写jQuery代码以及搭建开发环境,详细讲解了如何在Visual Studio中配合使用jQuery。转载请注明子秋出品!博客园首发!· 从零开始学习jQuery (二) 万能的选择器 本章讲解jQuery最重要的选择器部分的知识。有了jQuery的选择器我们几乎可以获取页面上任意的一个或一组对象, 可以明显减轻开发人员的工作量。· 从
阅读全文
摘要:1,总是从ID选择器开始继承在jQuery中最快的选择器是ID选择器,因为它直接来自于JavaScript的getElementById()方法。例如有一段HTML代码:div id="content"form method="post" action="#"h2交通信号灯/h2ul id="traffic_light"liinput type="radio" class="on" name="light" value="red"/ 红色/liliinput type="radio" class="off" name="light" value="yell
阅读全文
摘要:jQuery UI入门手册,新手必备。先说明一下效果:基本的鼠标互动:拖拽(drag and dropping)、排序(sorting)、选择(selecting)、缩放(resizing)各种互动效果:手风琴式的折叠菜单(accordions)、日历(date pickers)、对话框(dialogs)、滑动条(sliders)、表格排序(table sorters)、页签(tabs)、放大镜效果(magnifier)、阴影效果(shadow)第一节:鼠标的交互应用1.1 Draggables:拖拽所需文件:ui.mouse.jsui.draggable.jsui.draggable.ext
阅读全文
摘要:关于javascript与webservice的通信,从理论上来说实现应该不难,主要是将服务器端的xml数据进行一个简单的处理然后以一种适当的形式展现成来。在我这里,我选择将xml直接转换为json,以便后续javascript应用的处理。我使用.net平台构建简单的webservice。Request.asmx代码using System;using System.IO;using System.Collections;using System.Collections.Generic;using System.ComponentModel;using System.Web;using Sys
阅读全文
摘要:shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift(); //a:[2,3,4,5] b:1unshift:将参数添加到原数组开头,并返回数组的长度 var a = [1,2,3,4,5]; var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5] b:7 注:在IE6.0下测试返回值总为undefined,FF2.0下测试返回值为7,所以这个方法的返回值不可靠,需要用返回值时可用splice代替本方法来使用。pop:删除原数组最后一项,并返回删除
阅读全文
摘要:说明:把函数做为参数传递,利用闭包为要传递的函数绑定参数。应用场景:为dom元素绑定事件时,不能为函数指定参数,可用此函数来解决...view sourceprint?1//为函数绑定参数 brfunction bindArguments(/*function*/ f /*, initial argemtnts...*/){br var bindArgs=arguments;br return function(){br var args=[];br for(var i=1; ibindArgs.length; i++) args.push(bindArgs);br
阅读全文

浙公网安备 33010602011771号