简单工厂模式
1.概述
简单工厂模式是类的创建模式,又叫做静态工厂方法模式。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。
2.解决问题
当在一个系统中,我们要频繁的调用不同的实体类,使用它们的一个方法时,我们可以采用简单工厂模式来做,客户端不需要知道怎么创建产品,直接交给工厂来完成。
3.角色
1.工厂类:用于创建具体产品的工厂
2.抽象产品类:声明共同方法的抽象类或接口
3.具体产品:实现抽象产品中的方法。
4.结构图
5.结构中代码
我们用女娲造人的列子来写。
首先,女娲相当于一个工厂,用于创造各种各样的人,黄种人,白种人,黑种人等,所有的人都有相同的方法。女娲在造人的时候是要依赖人这个模型的。
1.抽象产品类----》人
public interface Person { public void eat(); public void sleep(); public void walk(); }
2.具体产品类:
public class YelloPerson implements Person { public void eat() { } public void sleep() { System.out.println("黄种人正在睡觉"); } public void walk() { } }
public class WhitePerson implements Person { public void eat() { } public void sleep() { System.out.println("白种人正在睡觉"); } public void walk() { } }
public class BlackPerson implements Person { public void eat() { } public void sleep() { System.out.println("黑种人正在睡觉"); } public void walk() { } }
工厂类----》女娲
public class NvWa { public static Person CreatePerson(String type){ Person person = null; switch (type) { case "黄色": person = new YelloPerson(); break; case "黑色": person = new BlackPerson(); break; case "白色": person = new WhitePerson(); break; default: break; } return person; } }
客户端:
public class Client { public static void main(String [] args){ String type = "黄色"; Person person = NvWa.CreatePerson(type); person.sleep(); } }
6.总结
1优点:相对而言降低类程序耦合度,提高程序维护和扩展性。
2缺点:工厂还是依赖抽象产品,没有实现真正的解耦。
优质内容筛选与推荐>>