当前位置: 首页 > news >正文

网站锚文本链接怎么做/必应搜索推广

网站锚文本链接怎么做,必应搜索推广,做网站费是多少,用 net做网站之前项目有个需求,审批流程的时候要根据配置发送信息:发送短信、发送邮件。当时看到这个就想到要用工厂模式,为什么要用工厂模式呢?用工厂模式进行大型项目的开发,可以很好的进行项目并行开发。就是一个程序员和另一个…

之前项目有个需求,审批流程的时候要根据配置发送信息:发送短信、发送邮件。当时看到这个就想到要用工厂模式,为什么要用工厂模式呢?用工厂模式进行大型项目的开发,可以很好的进行项目并行开发。就是一个程序员和另一个程序员可以同时去书写代码,而不是一个程序员等到另一个程序员写完以后再去书写代码。其中的粘合剂就是接口和配置文件。

通过简单的工厂设计模式可以达到类的 解耦合目的,但是之前的工厂设计模式依然存在问题,那就是在增加一个子类时都需要修改工厂类,这样很麻烦。现在就可以通过反射机制修改工厂类,这样肯定会 非常麻烦。学习完反射机制之后,实际上,此时就可以通过反射机制来改善工厂类,让其在增加子类时可以不用做任何的修改,就能达到功能的扩充,如下:

/****/

packagecom.factoryTest;importjava.util.Date;importjava.util.List;/***

* 描述:邮件短信消息记录

*@author小当家

* @created 2018年1月11日*/

public class MessageDTO implementsjava.io.Serializable{/*** serialVersionUID : long.*/

private static final long serialVersionUID = -1985834353259521222L;/*** 消息ID*/

privateLong messageId;/*** 需要发送短信的手机号码,多个用,隔开*/

privateString smsPhone;/*** 需要发送短信的短信内容*/

privateString content;/*** 邮件收件人*/

privateString mailRecipient;/*** 邮件标题*/

privateString mailSubject;/*** 邮件抄送人*/

privateString messageCC;/*** 邮件附件ID*/

privateLong attachId;/*** 消息发送时间*/

privateDate sendDate;/*** 消息发送用于什么模块*/

privateString module;/*** 发送状态,1:发送成功 0:发送失败*/

privateString sendStatus;/*** 发送消息类型:00000000->不发送 、00000001->短信、00000010->邮件、00000100->系统、00000011->短信和邮件以此类推*/

privateString sendType;/*** 发送用户*/

privateString userCode;/*** 接收用户,多用户可用逗号隔开*/

privateString recipientCode;/*** 备注*/

privateString note;/*** 附件名称*/

privateString attachmentName;/*** 附件地址*/

privateString attachPath;private ListattachIds;

get set ...}

定义一个发送邮件的接口

/***/

packagecom.factoryTest;/*** 描述:发送信息基础类

*@author小当家

* @created 2018年1月11日*/

public interfaceSendTypeBase {/***

* 描述

*@author小当家

* @created 2018年1月11日*/

public voidsendMessage(MessageDTO dto);

}

写一个发送邮件的类实现接口

/***/

packagecom.factoryTest;/*** 描述:发送邮件

*@author小当家

* @created 2018年1月11日*/

public class SendMail implementsSendTypeBase{

@Overridepublic voidsendMessage(MessageDTO dto) {

System.out.println(dto.getUserCode()+"发送邮件");

}

}

实现一个发送短信的类实现接口

/***/

packagecom.factoryTest;/*** 描述:发送短信

*@author小当家

* @created 2018年1月11日*/

public class SendSms implementsSendTypeBase{

@Overridepublic voidsendMessage(MessageDTO dto) {

System.out.println(dto.getUserCode()+"发送短信");

}

}

注意:

对比下简单工厂,如:

/***/

packagecom.factoryTest;/*** 描述

*@author小当家

* @created 2018年1月11日 下午4:25:27*/

public classSimpleFactory {publicSendTypeBase SendMessage(String type) {if("sms".equals(type)) {return newSendSms();

}else{return newSendMail();

}

}

}

下面是通过反射实现的工厂类

/***/

packagecom.factoryTest;importjava.lang.reflect.Constructor;importjava.util.HashMap;importjava.util.Map;/*** 描述:发送信息工厂类

*@author小当家

* @created 2018年1月11日*/

public classSendMessageFactory {private final static Map MESSAGE_MAP = new HashMap();static{//短信

MESSAGE_MAP.put("SMS", "com.factoryTest.SendSms");//邮件

MESSAGE_MAP.put("EMAIL", "com.factoryTest.SendMail");

}

@SuppressWarnings("rawtypes")public static SendTypeBase createClass(String type) throwsException {if(MESSAGE_MAP.get(type) == null) {throw new Exception("未配置发送信息类型");

}

Class classType=Class.forName(MESSAGE_MAP.get(type));

@SuppressWarnings("unchecked")

Constructor constructor=classType.getDeclaredConstructor();return(SendTypeBase) constructor.newInstance();

}

}

这里类型其实可以通过配置文件来处理,这样增加一个子类,就不需要改工厂类了。

http://www.jmfq.cn/news/5239981.html

相关文章:

  • 视频网站做app还是h5/宁德市有几个区几个县
  • 网页设计培训学费多少钱/seo案例模板
  • 隐藏网站源码/河南网站建设哪里好
  • 哪些网站可以做帮助文档/全国人大常委会副委员长
  • 网站综合建设笔记/沈阳seo排名公司
  • 如何做网站后台/免费私人网站建设软件
  • 智能锁网站建设关键词/seo优化方案总结
  • 站规划在网站建设中的作用/成都网站制作
  • 青岛东橙网站建设/青岛网站权重提升
  • 基本的网站建设知识/四大营销策略
  • 网站内页检测/百度一下首页极简版
  • 上海专业网站建设咨询/安徽网络关键词优化
  • 简单网页制作模板代码/宁波seo快速排名
  • 网站地图制作方法/seo优化网络
  • wordpress建站访问不了/湖南网站seo公司
  • 成都官网seo技术/百度关键词在线优化
  • 什么网站流量多/seo优化推广
  • wordpress固定连接设置后/上海外贸seo公司
  • 北京市住房建设委官方网站/2021网络营销成功案例
  • wordpress查看原图/seo前景
  • wordpress个人版/seo研究协会网是干什么的
  • 南海网站建设/技师培训
  • 有哪些微信开发公司/厦门seo新站策划
  • 免费搭建手机自助网站/青岛运营网络推广业务
  • 独立电商网站/百度推广的优势
  • 怎么注册网站挣流量/怎么看百度指数
  • 网站建设及/seo排名点击器
  • 办个网站卖什么好处/网站软文代写
  • 如何做点击赚钱的网站/企业网站建设方案书
  • 如何找有需求做网站的公司/排名优化推广