什么是工厂模式?有没有用工厂模式解决实际问题?
答案:2 悬赏:70 手机版
解决时间 2021-01-02 02:55
- 提问者网友:你给我的爱
- 2021-01-01 22:01
什么是工厂模式?有没有用工厂模式解决实际问题?
最佳答案
- 五星知识达人网友:duile
- 2021-01-01 23:34
工厂模式的思想主要为:多个类似的子类继承同一个父类,对其父类中的变量进行操作;工厂类负责判断、控制哪个子类被执行,而工厂类调用子类完成后,返回的结果是该子类的父类,该父类中的变量已经被操作过了,访问该父类,得到我们想要的结果
例如:
public interface Fruit {
void grow();//生长
void harvest();//收获
void plant();//种植
}
public class Apple implements Fruit{
private int treeAge;
public void grow() {
System.out.println(Apple is growing);
}
public void harvest() {
System.out.println(Apple has been harvested);
}
public void plant() {
System.out.println(Apple has been planted);
}
public int getTreeAge()
{
return treeAge;
}
public void setTreeAge(int age)
{
this.treeAge=age;
}
}
public class Grape implements Fruit {
private boolean seedless;
public void grow() {
System.out.println(Apple is growing);
}
public void harvest() {
System.out.println(Apple has been harvested);
}
public void plant() {
System.out.println(Apple has been planted);
}
public boolean getSeedless()
{
return seedless;
}
public void setSeedless(boolean seed)
{
this.seedless=seed;
}
}
public class FruitGardener {
public static Fruit factory(String which) throws BadFruitException
{
if(which.equalsIgnoreCase(apple)) {
return new Apple();
}
else if(which.equalsIgnoreCase(grape))
{
return new Grape();
}
else
{
throw new BadFruitException(Bad Fruit request);
}}
}
public class BadFruitException extends Exception{
publ......余下全文>>
例如:
public interface Fruit {
void grow();//生长
void harvest();//收获
void plant();//种植
}
public class Apple implements Fruit{
private int treeAge;
public void grow() {
System.out.println(Apple is growing);
}
public void harvest() {
System.out.println(Apple has been harvested);
}
public void plant() {
System.out.println(Apple has been planted);
}
public int getTreeAge()
{
return treeAge;
}
public void setTreeAge(int age)
{
this.treeAge=age;
}
}
public class Grape implements Fruit {
private boolean seedless;
public void grow() {
System.out.println(Apple is growing);
}
public void harvest() {
System.out.println(Apple has been harvested);
}
public void plant() {
System.out.println(Apple has been planted);
}
public boolean getSeedless()
{
return seedless;
}
public void setSeedless(boolean seed)
{
this.seedless=seed;
}
}
public class FruitGardener {
public static Fruit factory(String which) throws BadFruitException
{
if(which.equalsIgnoreCase(apple)) {
return new Apple();
}
else if(which.equalsIgnoreCase(grape))
{
return new Grape();
}
else
{
throw new BadFruitException(Bad Fruit request);
}}
}
public class BadFruitException extends Exception{
publ......余下全文>>
全部回答
- 1楼网友:西岸风
- 2021-01-02 00:39
感谢回答
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯