Factory.java
package com.youngmaster.Factory;
/*类型:工厂模式
*目的:把创建实例的责任和使用实例的责任分开
*描述:有个类的一个方法methodA()专门负责生成对象的实例,其他类调用此方法生成一个类的实例
**/
public class Factory {
public static Shape getInstance(String className){
if(className.equalsIgnoreCase("Square")){
return new Square();
}
if(className.equalsIgnoreCase("Circle")){
return new Circle();
}
return null;
}
}
Shape.java
package com.youngmaster.Factory;
public interface Shape {
public int area(int i);
public String toString();
}
Square.java
package com.youngmaster.Factory;
public class Square implements Shape {
@Override
public int area(int i) {
return i*i;
}
public String toString(){
return null;};
}
Circle.java
package com.youngmaster.Factory;
public class Circle implements Shape {
@Override
public int area(int i) {
return (int) (Math.PI*i*i);
}
}
Test.java
package com.youngmaster.Factory;
public class Test {
public static void main(String[] args) {
Shape shape = Factory.getInstance("Square");
System.out.println(shape.area(5));
}
}