Java的23中设计模式--工厂方法模式(Factory Method)

王朝学院·作者佚名  2016-05-28
窄屏简体版  字體: 小  |  中  |  大  |  超大  

java的23中设计模式--工厂方法模式(Factory Method)1.普通工厂模式

工厂类

/** * @Title Factory.java * @Package factory.factory1 * @date 2015-1-22 上午10:16:02 * @version V1.0 */package factory.factory1;/** * @ClassName Factory * @date 2015-1-22 上午10:16:02 */public class Factory { public Sender PRocedure(String type) { if("mail".endsWith(type)) { return new MailSender(); } if("sms".endsWith(type)) { return new SMSSender(); }else { System.out.println("未输入正确的类型"); //更好的话加入异常 return null; } }}

发送器接口

/** * @Title Sender.java * @Package factory.factory1 * @date 2015-1-22 上午10:07:24 * @version V1.0 */package factory.factory1;/** * @ClassName Sender * @date 2015-1-22 上午10:07:24 */public interface Sender {public void send();}

发送器实现类

/** * @Title MailSender.java * @Package factory.factory1 * @date 2015-1-22 上午10:09:29 * @version V1.0 */package factory.factory1;/** * @ClassName MailSender * @date 2015-1-22 上午10:09:29 */public class MailSender implements Sender{ /* (non-Javadoc) * @see factory.factory1.Sender#send() */ @Override public void send() { System.out.println("this is a mailsender"); }}

/** * @Title SMSSender.java * @Package factory.factory1 * @date 2015-1-22 上午10:14:36 * @version V1.0 */package factory.factory1;/** * @ClassName SMSSender * @date 2015-1-22 上午10:14:36 */public class SMSSender implements Sender{ /* (non-Javadoc) * @see factory.factory1.Sender#send() */ @Override public void send() { System.out.println("this is a smssender"); }}

测试类:

/** * @Title Test.java * @Package factory.factory1 * @date 2015-1-22 上午10:20:19 * @version V1.0 */package factory.factory1;/** * @ClassName Test * @date 2015-1-22 上午10:20:19 */public class Test {public static void main(String[] args) { Factory factory = new Factory(); Sender sender = factory.procedure("mail"); sender.send();}}

这种方法的实现方式对传入的类型要求比较高,就是传入的参数如果错误就不能够获得相对应的产生的东西。

2.多个工厂的方法

QQSTFbDIKE7oMEmjnOMop5nurrr3pO/7x63qGQkJY6O1GVOf5z73qXCrurq7uk+dc0/ogYyMjIyMjIw9QY+/9QVkZGRkZGT8nZDJ1IyMjIyMjD1DJlMzMjIyMjL2DJlMzcjIyMjI2DNkMjUjIyMjI2PPkMnUjIyMjIyMPUMmUzMyMjIyMvYMmUzNyMjIyMjYM2QyNSMjIyMjY8+QydSMjIyMjIw9QyZTMzIyMjIy9gyZTM3IyMjIyNgzZDI1IyMjIyNjz5DJ1IyMjIyMjD1DJlMzMjIyMjL2DJlMzcjIyMjI2DNkMjUjIyMjI2PPkMnUjIyMjIyMPUMmUzMyMjIyMvYMmUzNyMjIyMjYM2QyNSMjIyMjY8+QydSMjIyMjIw9QyZTMzIyMjIy9gzdSaaaWeh3R3VMRkZGRkbGX5/uJFP/JIlYhRkQROvft4CtvkfrfNe2YwOQPWVk/K+w4+2Xtuo9Z8nqB+THmJER6DYydQeFVHdaU1Xt1FPTX7ZZ9We+8w//L2ydYmtPnvXPeX0LfaKWW+dbTPfs/LElH95f++vK+HvDUH1g3elxrXqDVn93ncdU91f37GBYSvvs8S/j74ZuI1MBqCkAUxMTVZUgS9VEVFXM1CyI1uSni64Pzt2s7VLpTP7U0s+j+j+UDk7EqqYtM4dn/C9Svf80ecg0Te62XcjM6p6/9VVnZPzv0m1kavUnKsbePJuSQtTEIKZeY7FYjBQQUzYTwEzVxKBmalBAgWRhp36XG3cx3hQQM03+PN4m/bCrfpcb33n8biWtdopNU6iaGljh1bwZQcmIQQJmIw8SKMw0E6sZ75nqI52Yhjsq9AwjKMEYYDMJ97YC6c0pBk5+Y+nvJpiVVE3CYzBnT38Zfzd0G5mqqjCoKhvFUvHKji0m82KsPpYSa4nNCcCqpMqAqlgiVPRtKt9fs+HPNRQnslMTu3aqeaqqmooqq5KJKZuokZo382oO7M0LvMIL2IMFivBs8bf++jK6OwoNPUMEqkDoCeog3tQD6e8OEINC1dhUzFhVzMxMAFVVCaYlBauKpucDsvs0o/vTbWRqp56qJBazkic4Z8QmKqwV0YqqCzZh5jDFKomKapZonX+b9he8uqW9qVmyAFUzBamVTdohFRVnQipiaqasQspkwpZsMdNErmcKQMZ7ZBd6aphoURNThpEZmbGZaiIsTdmU1FiV1MRM1DidldAdrcOZnprxd0J3kqmhV2GYN2URYzIVmKqZV4mNvZIamzJUxIxUlc0k9GZixrvqd7lxV+M1Ha

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航