java设计模式——工厂模式

来源:互联网 发布:复旦大数据学院研究生 编辑:程序博客网 时间:2024/05/17 20:12

假设我们定义一个接口:

interface Work{public void tag();}


接下去有三个类来实现这个接口:

class SuvCar implements Work{public void tag(){System.out.println("这是保时捷旗下某一款suv车型");}}class TwoDoorCar implements Work{public void tag(){System.out.println("这是保时捷旗下某一款两门跑车");}}class FourDoorCar implements Work{public void tag(){System.out.println("这是保时捷旗下某一款四门轿车");}}

这种情况下,我们想要使用这三个类那就通过这三个类的实例:

public class Test {public static void main(String[] args) {SuvCar car = new SuvCar();car.tag();}}

这样一来我们可以看到,对于使用的人而言要知道SuvCar、TwoDoorCar以及FourDoorCar这三个类,使用者直接使用了具体的类,一旦这三个具体类发生改变,那调用就会出错,使用者将会受到影响。可见,使用者与被使用者之间联系太紧密了。为了避免这个问题可以使用工厂设计模式。

建一个工厂类:

class Factory{public static Work getWork(String product){if(product.equals("suv")){return new SuvCar();}else if(product.equals("two")){return new TwoDoorCar();}else if(product.equals("four")){return new FourDoorCar();}else{return null;}}}
这样的话,使用者只需要依赖这个工厂即可,无需依赖于具体的类:

public class Test {public static void main(String[] args) {Work work = Factory.getWork("four");if(work!=null){work.tag();}}}

减少耦合,把依赖于具体转变成依赖于接口。




0 0
原创粉丝点击