求个没封的w站2022wordpress手机页面底部导航
web/
2025/10/8 14:57:48/
文章来源:
求个没封的w站2022,wordpress手机页面底部导航,折纸效果网站,深圳做微信网站公司一、工厂方法模式#xff08;Factory Method#xff09; 工厂方法模式有三种 1、普通工厂模式#xff1a;就是建立一个工厂类#xff0c;对实现了同一接口的一些类进行实例的创建。首先看下关系图#xff1a; 举例如下#xff1a;#xff08;我们举一个发送邮件和短信的…一、工厂方法模式Factory Method 工厂方法模式有三种 1、普通工厂模式就是建立一个工厂类对实现了同一接口的一些类进行实例的创建。首先看下关系图 举例如下我们举一个发送邮件和短信的例子 首先创建二者的共同接口 public interface Sender { public void Send(); } 其次创建实现类 public class MailSender implements Sender { Override public void Send() { System.out.println(this is mailsender!); } } public class SmsSender implements Sender { Override public void Send() { System.out.println(this is sms sender!); } } 最后建工厂类 public class SendFactory { public Sender produce(String type) { if (mail.equals(type)) { return new MailSender(); } else if (sms.equals(type)) { return new SmsSender(); } else { System.out.println(请输入正确的类型!); return null; } } } 我们来测试下 public class FactoryTest { public static void main(String[] args) { SendFactory factory new SendFactory(); Sender sender factory.produce(sms); sender.Send(); } } 输出this is sms sender! 2、多个工厂方法模式是对普通工厂方法模式的改进在普通工厂方法模式中如果传递的字符串出错则不能正确创建对象而多个工厂方法模式是提供多个工厂方法分别创建对象。关系图 将上面的代码做下修改改动下SendFactory类就行如下 public class SendFactory { public Sender produceMail(){ return new MailSender(); } public Sender produceSms(){ return new SmsSender(); } } 测试类如下 public class FactoryTest { public static void main(String[] args) { SendFactory factory new SendFactory(); Sender sender factory.produceMail(); sender.Send(); } } 输出this is mailsender! 2.2、静态工厂方法模式将上面的多个工厂方法模式里的方法置为静态的不需要创建实例直接调用即可。 public class SendFactory { public static Sender produceMail(){ return new MailSender(); } public static Sender produceSms(){ return new SmsSender(); } } [java] view plaincopy public class FactoryTest { public static void main(String[] args) { Sender sender SendFactory.produceMail(); sender.Send(); } } 输出this is mailsender! 总体来说工厂模式适合凡是出现了大量的产品需要创建并且具有共同的接口时可以通过工厂方法模式进行创建。在以上的三种模式中第一种如果传入的字符串有误不能正确创建对象第三种相对于第二种不需要实例化工厂类所以大多数情况下我们会选用第三种——静态工厂方法模式。 3、抽象工厂模式Abstract Factory 工厂方法模式有一个问题就是类的创建依赖工厂类也就是说如果想要拓展程序必须对工厂类进行修改这违背了闭包原则所以从设计角度考虑有一定的问题如何解决就用到抽象工厂模式创建多个工厂类这样一旦需要增加新的功能直接增加新的工厂类就可以了不需要修改之前的代码。因为抽象工厂不太好理解我们先看看图然后就和代码就比较容易理解。 请看例子 public interface Sender { public void Send(); } 两个实现类 public class MailSender implements Sender { Override public void Send() { System.out.println(this is mailsender!); } } public class SmsSender implements Sender { Override public void Send() { System.out.println(this is sms sender!); } } 两个工厂类 public class SendMailFactory implements Provider { Override public Sender produce(){ return new MailSender(); } } public class SendSmsFactory implements Provider{ Override public Sender produce() { return new SmsSender(); } } 在提供一个接口 public interface Provider { public Sender produce(); } 测试类 public class Test { public static void main(String[] args) { Provider provider new SendMailFactory(); Sender sender provider.produce(); sender.Send(); } } 其实这个模式的好处就是如果你现在想增加一个功能发及时信息则只需做一个实现类实现Sender接口同时做一个工厂类实现Provider接口就OK了无需去改动现成的代码。这样做拓展性较好 以上内容引自于 https://www.cnblogs.com/maowang1991/archive/2013/04/15/3023236.html转载于:https://www.cnblogs.com/wuxinyiwu/p/8057645.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/89109.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!