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));
}
}