JAVA单例模式,工厂模式,观察者模式是什么

  介绍

本篇内容主要讲解“JAVA单例模式,工厂模式,观察者模式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JAVA单例模式,工厂模式,观察者模式是什么”吧!

Java的特点有哪些

Java的特点有哪些   1. java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。   2. java具有简单性,面向对象,分布式、安全性,平台独立与可移植性,动态性等特点。   3.使用Java可以编写桌面应用程序,网络应用程序,分布式系统和嵌入式系统应用程序等。


<强> 1。单例模式

每个类只能创建一个实例对象

Java单例模式主要作用是保证在Java应用程序中,一个类的类只有一个实例存在。使用单例的好处还在于可以节省内存,因为它限制了实例的个数,有利于Java垃圾回收(垃圾收集)。

好处:

第一、控制资源的使用,通过线程同步来控制资源的并发访问;

第二,控制实例产生的数量,达到节约资源的目的。

第三,作为通信媒介使用,也就是数据共享,它可以在不建立直接关联的条件下,让多个不相关的两个线程或者进程之间实现通信。

应用场景:在线统计人数


公共类单例{

私人单例(){}

公共静态不稳定的单例实例=零;
公共静态单例getInstance () {
同步(SingleTon.class) {
如果(实例==null) {
实例=new Singleton ();
,,,,,,,,,,,,,,,,,,,,,,,,,,,,}
,,,,,,,,,,,,,,,}
}
返回实例;
}

公共字符串getName () {
返回名称;
}
公共空间setName(字符串名称){
this.name=名字;
}
公共空间getInfo () {
, System.out.println(“名字是“+名字),
}
公共静态void main (String [] args) {

单s1=单例。getInstance ();
s1。setName (“0000“);

单s2=单例。getInstance ();
s2。setName (“;1111“);

s1。getInfo ();

s2。getInfo ();

如果(s1==s2) {

System.out.println(“是一个实例“);}
{
的其他系统。出去了。println(“不”是一个实例“);
,,,,,}
}

同步关键字,代表这个方法加锁,

相当于不管哪一个线程每一次运行到这个方法时,

都要检查有没有其它正在用这个方法的线程B(或者C D等),

有的话要等正在使用这个方法的线程B(或者C D)运行完这个方法后再运行此线程,

没有的话,直接运行它包括两种用法:同步的方法和同步块

<强> 2。工厂模式

优点:

将创建实例的工作与使用实例的工作分开,使用者不必关心类对象如何创建,明确了职责。

把初始化实例时的工作放到工厂里进行,使代码更容易维护。更符合面向对象的原则,面向接口编程,而不是面向实现编程。

缺点:

由于工厂类集中了所有产品创建逻辑,一旦不能正常工作,整个系统都要受到影响。

要新增产品类的时候,就要修改工厂类的代码,违反了开放封闭原则(对扩展的开放,对修改的关闭)。

简单工厂模式由于使用了静态工厂方法,静态方法不能被继承和重写,会造成工厂角色无法形成基于继承的等级结构。

公共接口发送方{
公共空间发送();
}
公共类MailSender实现发送者{
@0verride
公共空间发送(){
System.out.println(“这是MailSender !“);
}
公共类SmsSender实现发送者{
@override
公共空间发送(){
System.out.println(“这是短信发送者!“);
}
公共类SenderFactory {
公共发送方生产(String类型){
,,,,,,,如果“mail" .equals(类型)){
,,,,,,,,,,,返回新MailSender ();
,,,,,,,}else if (“sms" .equals(类型)){
,,,,,,,,,,,返回新SmsSender ();
,,,,,,,其他}{
,,,,,,,,,,,System.out.println(“请输入正确的类型!“);
,,,,,,,,,,,return 零;
,,,,,,,}
,,,,,,,//多工厂模式
//,,,,,,,公众发送方produceMail () {
//,,,,,,,,,,,返回新MailSender ();
//,,,,,,,}
//,,,,,,,公众发送方produceSms () {
//,,,,,,,,,,,返回新SmsSender ();
//,,,,,,,}
,,,}
}

<强> 3观察者模式

简单地说,观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监听一个主题对象。这样一来,当被观察者状态发生改变时,需要通知相应的观察者,使这些观察者对象能够自动更新。例如:GUI中的事件处理机制采用的就是观察者模式。

JAVA单例模式,工厂模式,观察者模式是什么