简单工厂模式是工厂模式的一种,其特点是实现起来比较简单,可以集中管理对象的创建,但在一定程度上破坏了开闭原则。
package com.depthmind.designpattern;
import org.springframework.util.Assert;
public class SimpleFactoryPattern {
public static void main(String[] args) {
Flower rose = FlowerFactory.getFlower("rose");
if (rose != null) {
rose.display();
}
Flower jasmine = FlowerFactory.getFlower("jasmine");
if (jasmine != null) {
jasmine.display();
}
}
}
class FlowerFactory {
private static Rose rose;
private static Jasmine jasmine;
static Flower getFlower(String flowerName) {
Assert.notNull(flowerName, "花名不能为空");
if (flowerName.equals("rose")) {
rose = new Rose();
return rose;
} else if (flowerName.equals("jasmine")) {
jasmine = new Jasmine();
return jasmine;
} else {
return null;
}
}
}
abstract class Flower {
abstract void display();
}
class Rose extends Flower{
public Rose() {
System.out.println("得到玫瑰花!");
}
@Override
void display() {
System.out.println("我是玫瑰花!");
}
}
class Jasmine extends Flower {
public Jasmine() {
System.out.println("得到茉莉花!");
}
@Override
void display() {
System.out.println("我是茉莉花!");
}
}