码迷,mamicode.com
首页 > 移动开发 > 详细

apply 伴生对象 单例对象

时间:2015-06-17 14:46:00      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

apply():

当类或者对象有一个主要用途时,apply方法提供了很好语法机制

scala> class Foo {}
defined class Foo

scala> object FooMaker {
     |   def apply() = new Foo
     | }
defined module FooMaker

scala> val newFoo = FooMaker()
newFoo: Foo = Foo@5b83f762

写在object中时,使用方法:类名()

或者

scala> class Bar {
     |   def apply() = 0
     | }
defined class Bar

scala> val bar = new Bar
bar: Bar = Bar@47711479

scala> bar()
res8: Int = 0

写在class中时,使用方法:变量名().

伴生对象,伴生类:

在scala中可以把object中的语句看成java等其他语言中的static语句,是该类所拥有的,不是具体对象的。

当object和class名相同时,他们称为彼此的伴生对象和伴生类,伴生对象中的语句,是类对应的静态部分。

伴生对象通常作为工厂模式使用,即可以做成单例对象。

单例对象:

class Bar private{

}

object Bar {
  val instance = new Bar
  def apply() = instance
}

 

apply 伴生对象 单例对象

标签:

原文地址:http://www.cnblogs.com/wlwgcdxc/p/4583036.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!