android 简单工厂模式,设计模式——简单工厂模式

本文介绍了一种常用的设计模式——简单工厂模式。通过示例代码详细解释了如何创建一个抽象产品类及多个具体产品类,并利用工厂类来实例化这些产品类。此外,还探讨了该模式的优点与局限性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建抽象产品类

public abstract class Computer {

/**

* 产品的抽象方法,由具体的产品类去实现

*/

public abstract void start();

}

创建具体产品类

public class LenovoComputer extends Computer{

@Override

public void start() {

System.out.println("联想电脑启动");

}

public class HpComputer extends Computer{

@Override

public void start() {

System.out.println("惠普电脑启动");

}

}

public class AsusComputer extends Computer {

@Override

public void start() {

System.out.println("华硕电脑启动");

}

}

创建Factory

public class ComputerFactory {

public static Computer createComputer(String type){

Computer mComputer=null;

switch (type) {

case "lenovo":

mComputer=new LenovoComputer();

break;

case "hp":

mComputer=new HpComputer();

break;

case "asus":

mComputer=new AsusComputer();

break;

}

return mComputer;

}

}

客户端调用工厂类

public class CreatComputer {

public static void main(String[]args){

ComputerFactory.createComputer("hp").start();

}

}

优缺点:

优点:

使用户根据参数获得对应的类实例,避免了直接实例化类,降低了耦合性。

缺点:

可实例化的类型在编译期间已经被确定,如果增加新类型,则需要修改工厂,违背了开放封闭原则(ASD) 。 简单工厂需要知道所有要生成的类型,当子类过多或者子类层次过多时不适合使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值