Abstract Factory 抽象工厂 Factory Method 工厂方法
工厂模式
任何可以产生对象的方法或类,都可以称之为工厂(比如单例模式的getInstance就是静态工厂)
和new对比的优点
- 灵活控制生产过程
- 权限、修饰、日志
工厂方法模式
//接口public interface sender {public void sender();}//邮件实现类public class MailSender implements sender {@Overridepublic void sender() {System.out.println("发送邮件");}}//短信实现类public class SmsSender implements sender {@Overridepublic void sender() {System.out.println("发送短信");}}//创建实现同一接口的类的实例public class Factory {public sender produceMile(){return new MailSender();}public sender produceSms(){return new SmsSender();}}
抽象工厂模式
// 对工厂类进行抽象,创建多个工厂类public interface Provider {public Sender produce();}public class SendMailFactory implements Provider {@Overridepublic Sender produce(){return new MailSender();}}public class SendSmsFactory implements Provider{@Overridepublic Sender produce() {return new SmsSender();}}
