图图接下来将介绍第二种设计模式,工厂方法设计模式。
工厂设计模式一共有三种,静态工厂和工厂方法还有抽象工厂。
如果你仔细看了的话昨天的uml图和文本是今天的uml 和文本,今天的应该是昨天的静态工厂。也就是说今天的才是静态方法,而昨天的是工厂方法!
(图图太粗心了。望读者见谅。标题搞反了)
(很多时候会结合单例模式,new出来的对象是单例的)
简单的UML图(有瑕疵)如下
package org.huey.partten.factory.staticfactory;
/**
* 抽象实体
* 静态工厂 也叫简单工厂
* @author huey
*
*/
public interface Computer{
/**
* 跑起来了
*/
public void run();
}
package org.huey.partten.factory.staticfactory;
/**
* 产品类
* @author huey
*
*/
public class Dell implements Computer{
@Override
public void run() {
System.out.println(this.getClass().getSimpleName()+"跑起来了");
}
}
package org.huey.partten.factory.staticfactory;
/**
* 产品类
* @author huey
*
*/
public class Lenovo implements Computer {
@Override
public void run() {
System.out.println(this.getClass().getSimpleName() + "跑起来了");
}
}
package org.huey.partten.factory.staticfactory;
/**
* 工厂类
*
* @author huey
*
*/
public class ComputerFactory {
public Computer createLenovo() {
return new Lenovo();
}
public Computer createDell() {
return new Dell();
}
}
package org.huey.partten.factory.staticfactory;
/**
* 测试方法
*
* @author huey
*
*/
public class StaticeFactoryTest {
public static void main(String[] args) {
//获取工厂
ComputerFactory computerFactory = new ComputerFactory();
//创建对象,并执行方法
Computer dell = computerFactory.createDell();
dell.run();
Computer lenovo = computerFactory.createLenovo();
lenovo.run();
}
}