设为首页收藏本站

SKY外语、计算机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6216|回复: 3
打印 上一主题 下一主题

[java基础] 23种设计模式(工厂模式)

[复制链接]

20

主题

0

好友

351

积分

版主

Rank: 7Rank: 7Rank: 7

性别
保密

最佳新人 活跃会员 热心会员 宣传达人 优秀版主 论坛元老

跳转到指定楼层
楼主
发表于 2013-5-17 10:37:47 |只看该作者 |倒序浏览
1、工厂方法模式(Factory Method)
工厂方法模式分为三种:
11、普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。首先看下关系图:

举例如下:(我们举一个发送邮件和短信的例子)
首先,创建二者的共同接口:
[java] view plaincopy
public interface Sender {  
    public void Send();  
}  
其次,创建实现类:
[java] view plaincopy
public class MailSender implements Sender {  
    @Override  
    public void Send() {  
        System.out.println("this is mailsender!");  
    }  
}  
[java] view plaincopy
public class SmsSender implements Sender {  
  
    @Override  
    public void Send() {  
        System.out.println("this is sms sender!");  
    }  
}  
最后,建工厂类:
[java] view plaincopy
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!
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
分享淘帖0 收藏收藏0 评分评分

20

主题

0

好友

351

积分

版主

Rank: 7Rank: 7Rank: 7

性别
保密

最佳新人 活跃会员 热心会员 宣传达人 优秀版主 论坛元老

沙发
发表于 2013-5-17 10:43:09 |只看该作者
23设计模式的java代码实现。。。

之后还会更新其他设计模式的讲解---
回复

使用道具 评分 举报

150

主题

5

好友

1179

积分

管理员

Rank: 9Rank: 9Rank: 9

性别
保密

最佳新人 活跃会员 推广达人 宣传达人 突出贡献 优秀版主 论坛元老

板凳
发表于 2013-6-7 08:17:44 |只看该作者
坚韧轩辛苦了
回复

使用道具 评分 举报

2

主题

0

好友

45

积分

版主

Rank: 7Rank: 7Rank: 7

性别
保密
地板
发表于 2013-11-4 12:41:29 |只看该作者
很好!
回复

使用道具 评分 举报

您需要登录后才可以回帖 登录 | 立即注册


手机版|SKY外语计算机学习 ( 粤ICP备12031577 )    

GMT+8, 2024-12-22 20:08 , Processed in 0.113667 second(s), 29 queries .

回顶部