Skip to main content
deleted 121 characters in body
Source Link
Jamal
  • 35.2k
  • 13
  • 134
  • 238

Need CodeI need a code review on my Abstract Factory pattern written in Java.

Please suggest me any changes

Find the two enums AnimalType.java and DietType.java below.

Below is Animal.java InterfaceAnimal.java Interface:

Below is Deer.java,Deer.java:

Below is Lion.javaLion.java:

Below is Shark.java,Shark.java:

Below is Turtle.java,Turtle.java:

Below is AnimalFactory.java,AnimalFactory.java:

Below is LandAnimalFactory.java,LandAnimalFactory.java:

Below is OceanAnimalFactory.java,OceanAnimalFactory.java:

Below is AnimalTypeFactory.java,AnimalTypeFactory.java:

Below is TerrestrialAnimalFactory.java,TerrestrialAnimalFactory.java:

Below is AquaticAnimalFactory.java,AquaticAnimalFactory.java:

Below is MainTestClass.java,MainTestClass.java:

From the above implementation of the Abstract Factory pattern, can you please review and tell me whether iI have achieved it  ?

if no If not,

  can you please tell me how I can i improve my pattern in the code,

waiting for the response?

Need Code review on my Abstract Factory pattern written in Java.

Please suggest me any changes

Find the two enums AnimalType.java and DietType.java below.

Below is Animal.java Interface

Below is Deer.java,

Below is Lion.java

Below is Shark.java,

Below is Turtle.java,

Below is AnimalFactory.java,

Below is LandAnimalFactory.java,

Below is OceanAnimalFactory.java,

Below is AnimalTypeFactory.java,

Below is TerrestrialAnimalFactory.java,

Below is AquaticAnimalFactory.java,

Below is MainTestClass.java,

From the above implementation of Abstract Factory pattern, can you please review and tell me whether i have achieved it  ?

if no ,

  can you please tell me how can i improve my pattern in the code,

waiting for the response

I need a code review on my Abstract Factory pattern written in Java.

Find the two enums AnimalType.java and DietType.java below.

Animal.java Interface:

Deer.java:

Lion.java:

Shark.java:

Turtle.java:

AnimalFactory.java:

LandAnimalFactory.java:

OceanAnimalFactory.java:

AnimalTypeFactory.java:

TerrestrialAnimalFactory.java:

AquaticAnimalFactory.java:

MainTestClass.java:

From the above implementation of the Abstract Factory pattern, can you please review and tell me whether I have achieved it? If not, can you please tell me how I can improve my pattern in the code?

Source Link

Abstract factory pattern implemented in Java

Need Code review on my Abstract Factory pattern written in Java.

Please suggest me any changes

Find the two enums AnimalType.java and DietType.java below.

package com.patterns.abstractfactory.three; public enum AnimalType { TERRESTRIAL("\nLeave on land and breath with lungs.\n"), AQUATIC("\nLeave in water and breath with gills.\n"); private String demo; AnimalType(String demo) { this.demo = demo; } @Override public String toString(){ return this.demo; } } package com.patterns.abstractfactory.three; public enum DietType { CARNIVORE("\nFeed on flesh\n"), HERBIVORE("\nFeed on plants\n"); private String demo; DietType(String demo){ this.demo = demo; } @Override public String toString(){ return this.demo; } } 

Below is Animal.java Interface

package com.patterns.abstractfactory.three; public interface Animal { void info(); } 

Below is Deer.java,

package com.patterns.abstractfactory.three; public class Deer implements Animal{ private AnimalType at; public Deer(AnimalType at){ this.at = at; } @Override public void info() { System.out.println(" This is Deer "); System.out.println(at); } } 

Below is Lion.java

package com.patterns.abstractfactory.three; public class Lion implements Animal{ private AnimalType at; public Lion(AnimalType at){ this.at = at; } @Override public void info() { System.out.println(" This is beasty lion "); System.out.println(at); } } 

Below is Shark.java,

package com.patterns.abstractfactory.three; public class Shark implements Animal{ private AnimalType at; public Shark(AnimalType at){ this.at = at; } @Override public void info() { System.out.println(" This is Shark fish "); System.out.println(at); } } 

Below is Turtle.java,

package com.patterns.abstractfactory.three; public class Turtle implements Animal{ private AnimalType at; public Turtle(AnimalType at){ this.at = at; } @Override public void info() { System.out.println("This is sea turtle"); System.out.println(at); } } 

Below is AnimalFactory.java,

package com.patterns.abstractfactory.three; public interface AnimalFactory { Animal createAnimal(DietType dietType) throws Exception; } 

Below is LandAnimalFactory.java,

package com.patterns.abstractfactory.three; public class LandAnimalFactory implements AnimalFactory{ private AnimalType at; public LandAnimalFactory(AnimalType at){ this.at = at; } @Override public Animal createAnimal(DietType dietType) throws Exception { Animal animal = null; if(dietType == DietType.CARNIVORE){ animal = new Lion(at); }else if(dietType == DietType.HERBIVORE){ animal = new Deer(at); }else{ throw new Exception(" Not able to create Land Animal "); } return animal; } } 

Below is OceanAnimalFactory.java,

package com.patterns.abstractfactory.three; public class OceanAnimalFactory implements AnimalFactory{ private AnimalType at; public OceanAnimalFactory(AnimalType at){ this.at = at; } @Override public Animal createAnimal(DietType dt) throws Exception{ Animal animal = null; if(dt == DietType.CARNIVORE){ animal = new Shark(at); }else if(dt == DietType.HERBIVORE){ animal = new Turtle(at); }else{ throw new Exception(" Not able to create Ocean Animal "); } return animal; } } 

Below is AnimalTypeFactory.java,

package com.patterns.abstractfactory.three; public abstract class AnimalTypeFactory { public abstract AnimalFactory createFactory(); } 

Below is TerrestrialAnimalFactory.java,

package com.patterns.abstractfactory.three; public class TerrestrialAnimalFactory extends AnimalTypeFactory{ @Override public AnimalFactory createFactory() { return new LandAnimalFactory(AnimalType.TERRESTRIAL); } } 

Below is AquaticAnimalFactory.java,

package com.patterns.abstractfactory.three; public class AquaticAnimalFactory extends AnimalTypeFactory { @Override public AnimalFactory createFactory() { return new OceanAnimalFactory(AnimalType.AQUATIC); } } 

Below is MainTestClass.java,

package com.patterns.abstractfactory.three; public class MainTestClass { public static void main(String [] args){ Animal animal = null; AnimalTypeFactory animalTypeFactory = null; AnimalFactory animalFactory = null; try{ animalTypeFactory = new TerrestrialAnimalFactory(); animalFactory = animalTypeFactory.createFactory(); animal = animalFactory.createAnimal(DietType.CARNIVORE); animal.info(); }catch(Exception e){ e.printStackTrace(); } } } 

From the above implementation of Abstract Factory pattern, can you please review and tell me whether i have achieved it ?

if no ,

can you please tell me how can i improve my pattern in the code,

waiting for the response