仓酷云

标题: 发布一篇Effective Java (1) 思索用静态工场办法取代机关器 [打印本页]

作者: 若天明    时间: 2015-1-18 11:00
标题: 发布一篇Effective Java (1) 思索用静态工场办法取代机关器
用java开发web只要两本书:一本是关于java基础的,一本是关于jsp、servlet的就可以了。开发周期长,我就来讲句题外话,现在有很多思想都是通过java来展现。
1、媒介
从明天入手下手企图用一个月的工夫,经由过程写念书条记的体例来纪录浏览这本Java范畴典范中的典范书本-EffectiveJava过程当中本人所思所想,以备今后查阅,同时分享进来也但愿能够匡助到其别人,空话未几说,如今入手下手第一篇:创立和烧毁对象。
2、思索用静态工场办法取代机关器
①.一样平常我们有甚么举措能够创立对象呢?
办法1:利用类私有机关器。
办法2:利用类的静态办法前往一个实例。
②.利用静态办法创立对象有甚么长处?
长处1:静态工场办法的名字是由我们本人定名,而机关办法必需与类同名。
  1. PrimeNumberprimeNumber1=newPrimeNumber(intRandom);//前往一个素数
  2. PrimeNumberprimeNumber2=PrimeNumber.newInstance();//利用静态工场办法暗示更加分明
复制代码
长处2:机关办法每次挪用的时分都必要创立一个对象,而静态工场办法每次挪用的时分就不会创立一个新的对象,这关于一个要频仍创立对象的程序来讲,能够极年夜的进步功能,单例形式就是如许完成的。
长处3:静态工场办法能够前往原前往范例的任何子范例的对象,如许使我们在选择前往对象的类时就有了更年夜的天真性。
  1. classFather{
  2. privateFather(){
  3. }
  4. publicstaticFathernewInstance(Stringtype){
  5. if(type.equals("ChildA")){//依据范例判别前往谁人子类对象
  6. returnnewChildA();
  7. }else{
  8. returnnewChildB();
  9. }
  10. }
  11. publicvoidgetName(){
  12. System.out.println("Mynameisfather");
  13. }
  14. privatestaticclassChildAextendsFather{
  15. publicvoidgetName(){
  16. System.out.println("MynameischildA");
  17. }
  18. }
  19. privatestaticclassChildBextendsFather{
  20. publicvoidgetName(){
  21. System.out.println("MynameischildB");
  22. }
  23. }
  24. }
  25. publicclassTest{
  26. publicstaticvoidmain(String[]args){
  27. Fatherc1=Father.newInstance("ChildA");
  28. c1.getName();
  29. Fatherc2=Father.newInstance("ChildB");
  30. c2.getName();
  31. }
  32. }
复制代码
检察本栏目更多出色内容:http://www.bianceng.cn/Programming/Java/
长处4:静态工场办法在创立参数化范例实例的时分,可使代码变得加倍简便。
  1. privateMap<String,List<String>>map=newHashMap<String,List<String>>();
  2. publicstatic<K,V>HashMap<K,V>newInstance(){
  3. returnnewHashMap<K,V>();
  4. }
复制代码
③.利用静态工场办法创立对象有甚么弱点?
弱点1:假如一个类只能经由过程静态工场办法来取得实例,那末该类的机关函数就不克不及是共有的或受回护的,那末该类就不会有子类,即该类不克不及被承继。单例形式中起首要公有化机关器。
弱点2:静态工场办法和其他静态办法从名字上看没法辨别,以是我们能够商定静态工场办法名字利用valueOf大概getInstance。
④.甚么时分用静态工场办法,甚么时分用机关器呢?
静态工场办法和共有机关器各有效处,我们必要了解他们各自的优点,静态工场一般加倍符合,因而切忌第一反响就是供应私有的机关器,而不先思索静态工场。
csdn博客zdp072

在ruby里才是一切皆对象。当然我不并不是很了解ruby,但是ruby确实是将语法简化得很好。
作者: 深爱那片海    时间: 2015-1-19 16:36
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
作者: 第二个灵魂    时间: 2015-1-23 13:46
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
作者: 再现理想    时间: 2015-1-31 16:50
是一种突破用户端机器环境和CPU
作者: 老尸    时间: 2015-2-3 06:04
是一种使网页(Web Page)产生生动活泼画面的语言
作者: 飘灵儿    时间: 2015-2-8 19:51
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
作者: 因胸联盟    时间: 2015-2-25 23:43
是一种使网页(Web Page)产生生动活泼画面的语言
作者: 乐观    时间: 2015-3-8 10:15
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
作者: 再见西城    时间: 2015-3-15 21:37
是一种使用者不需花费很多时间学习的语言
作者: 仓酷云    时间: 2015-3-22 05:07
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2