2010-04-24 4 views

Répondre

10

Que diriez-vous ceci:

scala> val c = new Car { 
    |  examineColor 
    |  bargain(300) 
    |  buy 
    | } 

Ou :

scala> { import c._ 
    | examineColor 
    | bargain(300) 
    | buy 
    | } 
+1

+1 pour la deuxième option. Le premier va créer une sous-classe de 'Car' et exécuter les méthodes dans son constructeur, ce qui peut ne pas être ce qui est attendu. –

2

En supposant que ces méthodes (examineColor, bargain et buy) sont invoquées pour leurs effets secondaires et non pour leurs valeurs de retour, vous pouvez utiliser le modèle de chaînage dans lequel chacune de ces méthodes retourne this, vous permettant d'écrire du code comme ceci:

val c1 = new Car() 
c1.examineColor.bargain(300).buy 
Questions connexes