instanceofnew

This commit is contained in:
michaelin007
2022-12-05 20:50:15 +00:00
parent 79c70a2511
commit 1e9097481f
32 changed files with 113 additions and 195 deletions

View File

@@ -1,9 +1,15 @@
package com.baeldung.instanceofalternative.enumallt;
public class Anatotitan extends Dinosaur {
// polymorphism
@Override
public String move() {
return "running";
}
String behavior() {
return "very aggressive";
// non-polymorphism
public String run() {
return "running";
}
}

View File

@@ -3,17 +3,17 @@ package com.baeldung.instanceofalternative.enumallt;
public enum DinosaurEnum {
Anatotitan {
@Override
public String behaviour() {
return "Aggressive";
public String move() {
return "running";
}
},
Euraptor {
@Override
public String behaviour() {
return "Calm";
public String move() {
return "flying";
}
};
public abstract String behaviour();
public abstract String move();
}

View File

@@ -1,9 +1,15 @@
package com.baeldung.enumallt;
package com.baeldung.instanceofalternative.enumallt;
public class Euraptor extends Dinosaur {
// polymorphism
@Override
public String move() {
return "flying";
}
String behavior() {
return "calm";
// non-polymorphism
public String flies() {
return "flying";
}
}

View File

@@ -1,9 +0,0 @@
package com.baeldung.instanceofalternative.examplesetup;
public class Anatotitan extends Dinosaur {
public String behavior() {
return "very aggressive";
}
}

View File

@@ -1,5 +0,0 @@
package com.baeldung.instanceofalternative.examplesetup;
public class Dinosaur {
}

View File

@@ -1,9 +0,0 @@
package com.baeldung.instanceofalternative.examplesetup;
public class Euraptor extends Dinosaur {
public String behavior() {
return "calm";
}
}

View File

@@ -1,9 +0,0 @@
package com.baeldung.instanceofalternative.getclassalt;
public class Anatotitan extends Dinosaur {
public String behavior() {
return "very aggressive";
}
}

View File

@@ -1,9 +0,0 @@
package com.baeldung.instanceofalternative.getclassalt;
public class Dinosaur {
/*
* String behavior() { return "default sound"; }
*/
}

View File

@@ -1,9 +0,0 @@
package com.baeldung.instanceofalternative.getclassalt;
public class Euraptor extends Dinosaur {
public String behavior() {
return "calm";
}
}

View File

@@ -1,9 +0,0 @@
package com.baeldung.instanceofalternative.mapalt;
public class Anatotitan extends Dinosaur {
public String behavior() {
return "very aggressive";
}
}

View File

@@ -1,9 +0,0 @@
package com.baeldung.instanceofalternative.mapalt;
public class Dinosaur {
public String behavior() {
return "default sound";
}
}

View File

@@ -1,9 +0,0 @@
package com.baeldung.instanceofalternative.mapalt;
public class Euraptor extends Dinosaur {
public String behavior() {
return "calm";
}
}

View File

@@ -0,0 +1,15 @@
package com.baeldung.instanceofalternative.model;
public class Anatotitan extends Dinosaur {
// polymorphism
@Override
public String move() {
return "running";
}
// non-polymorphism
public String run() {
return "running";
}
}

View File

@@ -0,0 +1,9 @@
package com.baeldung.instanceofalternative.model;
public class Dinosaur {
public String move() {
return "default movement";
}
}

View File

@@ -0,0 +1,15 @@
package com.baeldung.instanceofalternative.model;
public class Euraptor extends Dinosaur {
// polymorphism
@Override
public String move() {
return "flying";
}
// non-polymorphism
public String flies() {
return "flying";
}
}

View File

@@ -1,9 +0,0 @@
package com.baeldung.instanceofalternative.patternmatching;
public class Anatotitan extends Dinosaur {
public String behavior() {
return "very aggressive";
}
}

View File

@@ -1,9 +0,0 @@
package com.baeldung.instanceofalternative.patternmatching;
public class Dinosaur {
String behavior() {
return "default sound";
}
}

View File

@@ -1,9 +0,0 @@
package com.baeldung.instanceofalternative.patternmatching;
public class Euraptor extends Dinosaur {
public String behavior() {
return "calm";
}
}

View File

@@ -1,10 +0,0 @@
package com.baeldung.instanceofalternative.polymorphism;
public class Anatotitan extends Dinosaur {
@Override
public String behavior() {
return "very aggressive";
}
}

View File

@@ -1,9 +0,0 @@
package com.baeldung.instanceofalternative.polymorphism;
public class Dinosaur {
public String behavior() {
return "default sound of dinosaur";
}
}

View File

@@ -1,10 +0,0 @@
package com.baeldung.instanceofalternative.polymorphism;
public class Euraptor extends Dinosaur {
@Override
public String behavior() {
return "calm";
}
}

View File

@@ -2,12 +2,12 @@ package com.baeldung.instanceofalternative.visitorspattern;
public class Anatotitan implements Dino {
String behavior() {
return "very aggressive";
String run() {
return "running";
}
@Override
public String behavior2(Visitor dinobehave) {
public String move(Visitor dinobehave) {
return dinobehave.visit(this);
}

View File

@@ -2,6 +2,6 @@ package com.baeldung.instanceofalternative.visitorspattern;
public interface Dino {
String behavior2(Visitor dinobehave);
String move(Visitor dinoMove);
}

View File

@@ -4,12 +4,12 @@ public class DinoVisitorImpl implements Visitor {
@Override
public String visit(Anatotitan anatotitan) {
return anatotitan.behavior();
return anatotitan.run();
}
@Override
public String visit(Euraptor euraptor) {
return euraptor.behavior();
return euraptor.flies();
}
}

View File

@@ -2,12 +2,12 @@ package com.baeldung.instanceofalternative.visitorspattern;
public class Euraptor implements Dino {
String behavior() {
return "calm";
String flies() {
return "flying";
}
@Override
public String behavior2(Visitor dinobehave) {
public String move(Visitor dinobehave) {
return dinobehave.visit(this);
}

View File

@@ -8,22 +8,22 @@ import com.baeldung.instanceofalternative.enumallt.*;
public class EnumUnitTest {
@Test
public void testAnatotitan() {
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfEuraptor() {
Dinosaur dinosaur = new Dinosaur();
dinosaur.setDinosaur(DinosaurEnum.Euraptor);
assertEquals("Calm", dinosaur.getDinosaur()
.behaviour());
assertEquals("flying", dinosaur.getDinosaur()
.move());
}
@Test
public void testEuraptor() {
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfAnatotitan() {
Dinosaur dinosaur = new Dinosaur();
dinosaur.setDinosaur(DinosaurEnum.Anatotitan);
assertEquals("Aggressive ", dinosaur.getDinosaur()
.behaviour());
assertEquals("running", dinosaur.getDinosaur()
.move());
}
}

View File

@@ -4,19 +4,19 @@ import static org.junit.Assert.*;
import org.junit.Test;
import com.baeldung.instanceofalternative.examplesetup.*;
import com.baeldung.instanceofalternative.model.*;
public class ExampleSetupUnitTest {
@Test
public void testAnatotitan() {
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfAnatotitan() {
assertEquals("very aggressive", dinoBehavior(new Anatotitan()));
assertEquals("running", dinoBehavior(new Anatotitan()));
}
@Test
public void testEuraptor() {
assertEquals("calm", dinoBehavior(new Euraptor()));
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfEuraptor() {
assertEquals("flying", dinoBehavior(new Euraptor()));
}
public static String dinoBehavior(Dinosaur dinosaur) {
@@ -24,10 +24,10 @@ public class ExampleSetupUnitTest {
if (dinosaur instanceof Anatotitan) {
Anatotitan anatotitan = (Anatotitan) dinosaur;
return anatotitan.behavior();
return anatotitan.run();
} else if (dinosaur instanceof Euraptor) {
Euraptor euraptor = (Euraptor) dinosaur;
return euraptor.behavior();
return euraptor.flies();
}
return "";
}

View File

@@ -3,18 +3,18 @@ package com.baeldung.instanceoftest;
import static org.junit.Assert.*;
import org.junit.Test;
import com.baeldung.instanceofalternative.getclassalt.*;
import com.baeldung.instanceofalternative.model.*;
public class GetClassUnitTest {
@Test
public void testAnatotitan() {
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfAnatotitan() {
assertEquals("very aggressive", dinoBehavior(new Anatotitan()));
assertEquals("running", dinoBehavior(new Anatotitan()));
}
@Test
public void testEuraptor() {
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfEuraptor() {
assertEquals("calm", dinoBehavior(new Euraptor()));
}
@@ -24,11 +24,11 @@ public class GetClassUnitTest {
.equals(Anatotitan.class)) {
Anatotitan anatotitan = (Anatotitan) dinosaur;
return anatotitan.behavior();
return anatotitan.run();
} else if (dinosaur.getClass()
.equals(Euraptor.class)) {
Euraptor euraptor = (Euraptor) dinosaur;
return euraptor.behavior();
return euraptor.flies();
}
return "";
}

View File

@@ -7,26 +7,26 @@ import java.util.Map;
import org.junit.Test;
import com.baeldung.instanceofalternative.mapalt.*;
import com.baeldung.instanceofalternative.model.*;
public class MapUnitTest {
@Test
public void testAnatotitan() {
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfAnatotitan() {
assertEquals("very aggressive", dinoBehavior(new Anatotitan()));
assertEquals("running", moveDinosaur(new Anatotitan()));
}
@Test
public void testEuraptor() {
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfEuraptor() {
assertEquals("calm", dinoBehavior(new Euraptor()));
assertEquals("calm", moveDinosaur(new Euraptor()));
}
public static String dinoBehavior(Dinosaur dinosaur) {
public static String moveDinosaur(Dinosaur dinosaur) {
Map<Class<? extends Dinosaur>, String> response = new HashMap<Class<? extends Dinosaur>, String>();
response.put(dinosaur.getClass(), dinosaur.behavior());
response.put(dinosaur.getClass(), dinosaur.move());
return response.get(dinosaur.getClass());
}

View File

@@ -4,28 +4,28 @@ import static org.junit.Assert.*;
import org.junit.Test;
import com.baeldung.instanceofalternative.patternmatching.*;
import com.baeldung.instanceofalternative.model.*;
public class PatternMatchingUnitTest {
@Test
public void testAnatotitan() {
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfAnatotitan() {
assertEquals("very aggressive", dinoBehavior(new Anatotitan()));
assertEquals("running", dinoBehavior(new Anatotitan()));
}
@Test
public void testEuraptor() {
assertEquals("calm", dinoBehavior(new Euraptor()));
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfEuraptor() {
assertEquals("flying", dinoBehavior(new Euraptor()));
}
public static String dinoBehavior(Dinosaur dinosaur) {
if (dinosaur instanceof Anatotitan anatotitan) {
return anatotitan.behavior();
return anatotitan.run();
} else if (dinosaur instanceof Euraptor euraptor) {
return euraptor.behavior();
return euraptor.flies();
}
return "";
}

View File

@@ -5,23 +5,23 @@ import static org.junit.Assert.*;
import org.junit.BeforeClass;
import org.junit.Test;
import com.baeldung.instanceofalternative.polymorphism.*;
import com.baeldung.instanceofalternative.model.*;
public class PolymorphismUnitTest {
@Test
public void testAnatotitan() {
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfAnatotitan() {
assertEquals("very aggressive", dinoBehavior(new Anatotitan()));
assertEquals("running", dinoBehavior(new Anatotitan()));
}
@Test
public void testEuraptor() {
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfEuraptor() {
assertEquals("calm", dinoBehavior(new Euraptor()));
}
public static String dinoBehavior(Dinosaur dinosaur) {
return dinosaur.behavior();
return dinosaur.move();
}
}

View File

@@ -9,21 +9,21 @@ import com.baeldung.instanceofalternative.visitorspattern.*;
public class VisitorsPatternUnitTest {
@Test
public void testAnatotitan() {
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfAnatotitan() {
assertEquals("very aggressive", visitorsPatter((Dino) new Anatotitan()));
assertEquals("running", visitorsPatter((Dino) new Anatotitan()));
}
@Test
public void testEuraptor() {
public void givenADinosaurSpecie_whenGroupBySubclass_thenGetMovementOfEuraptor() {
assertEquals("calm", visitorsPatter((Dino) new Euraptor()));
assertEquals("flying", visitorsPatter((Dino) new Euraptor()));
}
public static String visitorsPatter(Dino dinosaur) {
Visitor visitor = new DinoVisitorImpl();
return dinosaur.behavior2(visitor);
return dinosaur.move(visitor);
}
}