2013-10-10 4 views
0

Можно ли клонировать объект одного тонального класса? смотрите в приведенном ниже примереМожно ли клонировать объект одного тонального класса?

public class Car implements Cloneable{ 
private static Car car=null; 
private void car() {} 
public static Car GetInstance() { 
if(car==null) { 
car=new Car();} 
return car;} 
public static void main(String arg[]) throws CloneNotSupportedException{ 
car=Car.GetInstance(); 
Car car1=(Car) car.clone(); 
System.out.println(car.hashCode());//printing the hash code 
System.out.println(car1.hashCode());} 
public Car clone(){ 
return car;} 
} 
+0

Вы можете клонировать экземпляр, представляющий одноэлемент. почему нет? Вопрос в том, почему? –

+0

«Клонирование» синглтон поражает своей целью. – wilx

ответ

0

Конечно, можно, но Не делай этого. Действительно, если у вас есть необходимость снести цель объекта Singleton, это означает необходимость рефакторинга вашего класса и способа его доступа.

-1

Вы можете клонировать ваш класс таким образом, чтобы получить желаемое поведение.

public Car clone() { 
    Car c = null; 
    try { 
     c = (Car) super.clone(); 
     return c; 
    } catch (CloneNotSupportedException e) { 
     e.printStackTrace(); 
     throw new RuntimeException(); 
    } 
} 
Смежные вопросы