- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Spring主要实现的模式介绍:工厂模式和单态模式
1. 单态模式
单态模式限制了类实例的创建,但采用这种模式创建的类,可以保证仅有一个实例。
为了防止单态模式的类被多次实例化,应将类的构造器设成私有,这样就保证了只能通过静态方法获得类实例,而该静态方法则保证每次返回的实例都是同一个,这样就需要将类的实例设置成类属性,由于该属性需要被静态方法访问,因此该属性应设成静态属性。
下面给出单态模式的代码
public class SingletonText
{
//该类的一个普通属性
int value ;
//使用静态属性保存该类的一个实例
private static SingletonText instance;
//构造器私有化,避免该类别多次实例化
private SingletonText(){
System.out.println(正在执行构造器 );
}
//提供静态方法来返回该类的实例
public static SingletonText getInstance(){
//实例化类实例前,先检查该类的实例是否存在
if(instance == null){
//如果不存在,则新建一个实例
instance = new SingletonText();
}
//返回改类的成员变量:改类的实例
return instance ;
}
//下面对该类的普通属性value的setter和getter方法
public int getValue()
{
return value ;
}
public void setValue(int value)
{
this.value = value;
}
public static void main(String[]args){
SingletonText s1 = SingletonText.getInstance();
SingletonText s2 = SingletonText.getInstance();
s2.setValue(9);
System.out.println(s1 == s2);
}
}
从程序的结果可以看出,改类的两个实例完全相同,这证明单态模式的全部实例是同一共享实例,程序里虽然获得了类的两个实例,但实际上只执行依次构造器,因为对于单态模式的类,无论有多少次的创建实例请求,都只执行一次构造器
2.工厂模式
工厂模式是根据调用数据返回某个类的一个实例,此类可以是多个类的某一个类。通常,这些类满足共同的规则(接口)或父类。调用者只关心工厂生产的实例是否满足某种规范,即实现的某个接口是否可供自己正常调用(调用者仅仅使用)。该模式给对象之间作出了清晰的角色划分,降低程序的耦合。
下面是工厂模式的实例代码
定义Person接口
public interface Person
{
public String sayHello(String name);
public String sayGoodBye(String name);
}
下面是Person接口的两个实现类
public class American implements Person
{
public String sayGoodBye(String name)
{
return name + ,Hello ;
}
public String sayHello(String name)
{
return name + ,GoodBye ;
}
}
public class Chinese implements Person
{
public String sayGoodBye(String name)
{
return name + ,您
您可能关注的文档
最近下载
- 反推装置 (1)课件讲解.pptx VIP
- LNG 加气站作业活动风险管控清单.pdf VIP
- 色彩的情感表现及象征和意象.ppt VIP
- 实用类文本《宇宙的边疆》阅读练习及答案(贵阳五校2022高三联考).docx VIP
- BigBrother完整剧情攻略-(必威体育精装版版).pdf VIP
- DENON天龙播放器DCD-2020AE操作手册.pdf
- 南昌工程学院842信号与系统考研真题试题(含标准答案)2019年.doc
- 潘多拉20160715官方正式修订版.pdf VIP
- 新人教PEP版小学英语五年级下册期末全册单元复习课件(含专题).ppt VIP
- 艺术导论知到智慧树期末考试答案题库2025年山东农业工程学院.docx
文档评论(0)