设计模式(简单工厂)

今天开始,想把设计模式看看,了解下设计过程中需要注意哪些细节,由于水平有限吧,仅作为学习笔记使用(参考研磨设计模式书)。


简单工厂通常就是提供给调用方使用,用来创建某一接口对应的某个实现类的实例。处于接口和实现类这一边,知道接口的具体实现细节。


举例说明:

接口Api,提供方法sayHello

interface Api {
    public void sayHello();
}

实现类1:

public class Impl1 implements Api {
    public void sayHello() {
        System.out.println("hello,实现类1");
    }
}


实现类2:

public class Impl2 implements Api {
    public void sayHello() {
        System.out.println("hello,实现类2");
    }
}

工厂类:

public class ApiFactory {
    public static Api getApi(int type) {
        Api api = null;
        if (type == 1) {
            api = new Impl1();
        } else if (type == 2) {
            api = new Impl2();
        }
        return api;
    }
}


客户端:

public class Client {
    public static void main(String[] args) {
        Api api = ApiFactory.getApi(1);
        api.sayHello();
    }
}


以上是通过类型type去获取实例,还有根据配置文件去获取实例的(暂不赘述)。


简单工厂优缺点:

1、帮助封装;

2、解耦

缺点:

1、稍微的增加了客户端的复杂度;

2、不方便扩展子工厂


简单工厂命名建议:

类命名建议为“模块名称+Factory”,比如用户模块的工厂就称为UserFactory。

方法名称通常为“get+接口名称”,或者“create+接口名称”,比如有一个接口名称叫“UserEbi”,那么方法名称通常为getUserEbi或者createUserEbi。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值