简单工厂设计模式的出现是为了解决子类之间实现的差异。 在Java中的接口只是声明标准的,集体的实现是要靠子类去实现的他的。
我先来看一下没有是有工厂设计模式 和有设计模式的 区别:
从上面的图我们可以很容易看出两个的区别,其中使用了简单工厂设计模式的图中多了“工厂" 这个环境。这就是简单设计模式的特点。
特点有:
1.”工厂“这个类负责创建子类;
2.”工厂“这个类创建子类的返回值必须是接口类,这体现了“多态”;此方法必须是静态的static
3."工厂"这个类的出现解决了子类实现的差异。想要实现什么类,直接告诉“工厂”类。
案例:
假如我们定义一个手机标准(接口),这个手机标准就是发送短信。生产商根据这个标准生成手机,条件就是只要符合这个标准就是手机。这里我吗定义两个。一个是Android手机类,还有一个是小米手机类。这两个类都现实了接口的标准。
代码:
//简单工厂设计模式
//声明标准
interface ICellPhone
{
void sendMG();
}
//android实现标准
class AndroidCellPhoneImpl implements ICellPhone
{
public void sendMG()
{
System.out.println("Android在发短信");
}
}
//mumi实现标准
class MumiCellPhoneImpl implements ICellPhone
{
public void sendMG()
{
System.out.println("小米在发短信");
}
}
class FactoryCellPhone
{
public static ICellPhone getCellPhone(String type)
{
ICellPhone cp = null;
if ("小米".equals(type))
{
cp = new MumiCellPhoneImpl();
} else if ( "Android".equals(type)) {
cp = new AndroidCellPhoneImpl();
}
return cp;
}
}
class FactoryDemo
{
public static void main(String[] args)
{
ICellPhone cp = FactoryCellPhone.getCellPhone("小米");
cp.sendMG();
}
}