Opis
Wykonujemy tą metodę, gdy mamy warunek logiczny, który wybiera inne zachowania, zależne od danego typu obiektu.
Implementujemy podaną operację po przez przeniesienie każdej opcji z warunku logicznego, aby nadpisywał on metodę w podklasie. Oraz oryginalna klasa robi się abstrakcyja.
 
Przykład
Przed refkatoryzacją:
  double getSpeed() {
     switch (_type) {
       case EUROPEAN:
         return getBaseSpeed();
       case AFRICAN:
         return getBaseSpeed() - getLoadFactor() * _numberOfCoconuts;
       case NORWEGIAN_BLUE:
         return (_isNailed) ? 0 : getBaseSpeed(_voltage);
     }
     throw new RuntimeException ("Should be unreachable");
   }
Po refkatoryzacji:

Listing
Ranga: Administrator serwisu Punktów: 0



 
  
				

 
                             
 


 
                        
 
		 
	