Java设计模式-简单工厂模式

2017-12-21  本文已影响0人  我叫路飞啊

简单工厂模式

目的是为了符合开发高内聚低耦合。

简单工厂模式是类的创建模式,又叫做静态工厂方法模式。简单工厂模式由一个工厂对象决定生产出哪一种产品类的实例


代码的耦合度太高,会使以后做维护的难度大大增加,所以我们要降低耦合度,这样代码模块间

就分的很清楚,便于维护和阅读。


下面是简单工厂模式示例

代码

创建一个水果的接口


package com.pp.Factory;

    public interface Fruit {

    //种植

    public void plant();

    //生长

    public void grow();

    //收获

    public void harveset();

}


下面是两个子类来遵从这个接口,实现里面的方法


public class Apple implements Fruit {

    @Override

    public void plant() {

    System.out.println("苹果类重写的种植方法");

    }

    @Override

    public void grow() {

    // TODO Auto-generated method stub

    System.out.println("苹果类重写的生长方法");

    }

    @Override

    public void harveset() {

    // TODO Auto-generated method stub

    System.out.println("苹果类重写的收获方法");

    }

}


public class Banana implements Fruit {

    @Override

    public void plant() {

    // TODO Auto-generated method stub

    System.out.println("这是香蕉重写的种植方法");

    }

    @Override

    public void grow() {

    // TODO Auto-generated method stub

    System.out.println("这是香蕉重写的生长方法");

    }

    @Override

    public void harveset() {

    // TODO Auto-generated method stub

    System.out.println("这是香蕉重写的收获方法");

    }

}


然后再建一个管理水果的就是水果种植基地的老板之类的


public class Gardener {

    //获取水果的方法

    public static Fruit getFruit(String fruit) {

        if (fruit.equalsIgnoreCase("apple")) {

            return new Apple();

        } else if(fruit.equalsIgnoreCase("banana")) {

           return new Banana();

        } else {

            return null;

        }

}

//想要什么水果就可以把参数写成什么水果

public static void main(String[] args) {

    Fruit f = Gardener.getFruit("APPLE");

    f.grow();

    Fruit f2 = Gardener.getFruit("BANANA");

    f2.harveset();

    }

}


这样写程序,看着容易多了

1、用户不自己去生产产品,只需要负责去拿自己需要的东西就好了,这样用户-->产品之间的耦合度就降低了

2、代码模块职责更明确了,有专门消费的模块、有专门生产的模块


这就是一个简单工厂模式

这个代码还能改进,以后再来写。

上一篇下一篇

猜你喜欢

热点阅读