JAVA学习笔记----简单工厂模式,模板模式,包装类


简单工厂模式:

采用工厂的思维,其实就是利用工厂对象来创建需要的对象,首先,工厂对象要采用单例模式,即私有化其构造方法,在工厂内部创建工厂对象并将其私有,再在工厂类里编写获得工厂对象的静态方法(一般命名为getInstance),当外部程序需要获得工厂对象时,直接用工厂类名.getInstance()即可获得工厂对象

为什么要建立工厂:为了方便创建对象,即一个工厂可以创建多个同一类型的对象。要实现此种效果,就得抽取这些对象的共同属性和方法建立抽象父类,在工厂类中利用多态,即父类引用指向子类对象,就可以用一个标识符表示多种对象,扩展性好。

怎么选择生产何种对象:在工厂类中建立对象清单,即一些常量表示不同的对象,将其作为工厂类生产对象方法的参数。控制工厂对对象的生产。

模板模式:

当某一类对象需要流水线式调用方法时,比如汽车类,有方法:开门,关门,发动,行驶,停车这几个方法,每次使用时都是以开门,关门,发动,行驶,停车,开门,关门这样的方法组合,这种情况下,就可以考虑使用模板模式,将这种方法的组合作为一种模板存在一个方法之中,只要汽车类对象调用该方法,就可实现模板化的这些操作,而这个存放模板的方法,最好是写在他们的父类中,而因为子类各自方法实现不同,所以将父类写成抽象类。

实现过程:

首先,有一个抽象类,里面有多个抽象方法或者普通方法,专门建立一个方法,里面存放指定的方法执行顺序,子类对象建立后,调用此方法,就可让自身的方法按照此顺序执行,所以,执行的方法都是子类重写后的方法。

包装类:

Java是面向对象的,而8个基本数据类型都不能创建对象,打破了一切都是对象的这种优点,所以java为每个基本数据类型都编写了一个包装类。除了char对应character,int对应Integer之外,其他基本数据类型的包装类名就是基本数据类型名首字母大写

装箱:

将基本数据类型转换为包装类,

如:Integer integer1 = Integer.valueOf(100);

Jdk1.5之后,支持自动装箱,很方便直接Integer i = 100;

拆箱:          

将包装类转为基本数据类型

如:int i = integer1.intValue();

自动拆箱:int i = integer1;

一般自动装拆箱即可

String类:

String的值存在常量池中,是一个不可变的量,关于String对象的指引比较,要特别注意它们各自指向的是不同的对象,还是同一个常量池内的数据。最好用equals吧。

String类中的方法:

大概包括以下几类:

     拼接:concat(str),将其加入到末尾,

    截取:substring(),放入一个参数,截取到末尾。放两个参数,截取这个区间

    替换:replace(str1,str2)将字符串中的str1换成str2。

    查询:查询指定字符,字符串在某字符串中第一次或者最后一次出现的位子(下标)。

可变长字符串:

StringBuilder和StringBuffer

线程不安全    线程安全

效率高          效率较低

单线程中使用   多线程中使用

其方法有:在末尾追加,指定下标插入,替换指定下标的字符,翻转字符,删除指定字符或者删除某个下标区间的字符,以及将一段字符串替换成另一段字符串。

日期类:

Date:new 一个date并直接打印该对象就可获得当前时间,不过格式不好看,要想改变其格式就得new一个格式化日期类的对象,在其有参构造方法中加入你想要的格式,再用其.format(date)方法表示对该date对象的日期表示方法格式重定义。(Date已经快被淘汰了)

Calender:日历类,通过Canlendr.getInstance()方法获得日历类对象,直接用它的get方法就可以获得年份,月份,及各种日历信息。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值