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

南通做百度网站的公司网站优化seo是什么

南通做百度网站的公司网站,优化seo是什么,保山公司做网站,嘉兴做网站建设的公司不要担心冗长,3分钟解决面试和学习问题,收藏再看 目的:当作一种模板,结合自身特点,针对项目需求来使用 目录 单例模式 特点: 实现方式: 1、饿汉式 2、线程安全的懒汉式 3、双重校验锁 使…

不要担心冗长,3分钟解决面试和学习问题,收藏再看

目的:当作一种模板,结合自身特点,针对项目需求来使用

目录

单例模式

特点:

实现方式:

1、饿汉式

2、线程安全的懒汉式

3、双重校验锁

使用经验:

工厂模式

特点:

实现方式:

1、简单工厂模式

2、工厂方法模式

3、抽象工厂模式

​编辑

使用经验:

适配器模式

组成:

特点:

实现方式:

​编辑

使用经验:

代理模式

特点:

实现方式:

1、静态代理:

2、动态代理

​编辑

使用经验:

观察者模式

特点:

实现方式:

​编辑

使用经验:


单例模式

特点:

  • 整个程序该类 唯一实例化对象
  • 统一管理调度
  • 避免资源多重占用
  • 节省内存开销
  • 节省性能开销

实现方式:

1、饿汉式

先初始化好变量,需要时直接返回

//Kotlin
object Singleton//Java
public class Singleton{private Singleton(){}private static Singleton instace = new Singleton();public static Singleton getInstance(){return instance;}
}

2、线程安全的懒汉式

使用同步锁解决懒汉式线程安全问题

//Kotlin 
Class Singleton private constructor(){private var instance:Singleton? = nullfun get():Singleton{if (instance == null){synchronized(this){if (instance == null){instance = Singleton()}}}return instance!!}
} //Java
public class Singleton{private Singleton(){}private static Singelton instance;public static sychronized Singleton getInstance(){if(instance==null){instance = new Singleton();}return instance;}
}

3、双重校验锁

考虑线程安全,基于同步锁来创建并返回唯一实例对象

//Kotlin
companion object{val instance:Singleton by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) {Singleton()}
}//Java
public class Singleton{private volatile static Singleton instance;private Singleton(){}public static Singleton getInstance(){if(instace == null){synchronized(Singleton.class){if(instance == null){instance = new Singleton();}}}return instance;}
}

4、静态内部类

静态提供单个实例,实例通过内部类创建

//Kotlin
class Singleton private constructor(){companion object{val instance = SingletonHolder.holder}private object SingletonHolder{val holder = Singleton()}
}//Java
public class Singleton{private static class SingletonHolder{private static Singleton instance = new Singleton();}private Singleton(){}public static Singleton getInstance(){return SingletonHolder.instance;}
}

使用经验:

  • 线程安全和性能要求高, 使用饿汉式、双重检查锁
  • 需要保证创建单例是第一次访问时,使用了懒汉式、静态内部类

工厂模式

特点:

  • 不直接实例化对象,通过工厂创建对象

实现方式:

1、简单工厂模式

只创建一个工厂,工厂可以产多个产品(利用接口实现统一)

接口:

interface ICar {fun printColor()fun installEngine()fun installWheels()fun installSystem()fun doit()
}

产品类:

class CarA :ICar {private lateinit var color: Stringprivate lateinit var engine:Stringprivate lateinit var wheels:Stringprivate lateinit var system:Stringoverride fun printColor() {color = "red"println("it is red")}override fun installEngine() {engine = "EngineA"println("it is $engine")}override fun installWheels() {TODO("Not yet implemented")}override fun installSystem() {TODO("Not yet implemented")}override fun doit(){printColor()installEngine()}override fun toString(): String {return "$color+$engine"}
}

工厂类:

class SimpleFactory {companion object{val CAR_A = "CarA"val CAR_B = "CarB"fun buildCar(type:String):ICar?{var car:ICar? = nullwhen(type){CAR_A-> car = CarA()CAR_B-> car = CarB()}car?.doit()return car}}
}

通过工厂创建:

val A = SimpleFactory.buildCar(SimpleFactory.CAR_A)

输出结果:

2、工厂方法模式

多产品类对应多工厂,所有产品类对应一个接口(统一产品大致操作),所有工厂类对应一个接口(统一工厂的大致操作如“生产产品”)

产品接口:

interface ICar {fun printColor()fun installEngine()fun installWheels()fun installSystem()fun doit()
}

工厂接口:

interface IFactory {fun buildCar():ICar
}

工厂类同简单工厂模式一致

新增产品类如CarC,同样实现ICar接口,创建对应工厂C来实现IFactory接口

class CCarFactory:IFactory {private val carC = CarC()override fun buildCar(): ICar {carC.doit()return carC}
}

3、抽象工厂模式

有多个工厂,一个工厂可以生产多种产品(工厂间一个接口统一,同类产品间一个接口统一)

多产品统一接口:

多个工厂,接口统一:

使用经验:

  • 第一关注接口,同类产品共有方法放产品接口,工厂要生产哪几类产品的方法放同一工厂接口
  • 固定永远只有几种产品。使用简单工厂
  • 随时新建工厂,生产新产品。使用工厂方法
  • 一个工厂可以生产不同种类产品。使用抽象工厂

适配器模式

不修改现有代码,将不兼容的类组合在一起

组成:

  • 目标接口 Target Interface
  • 适配器 Adapter :充当两个不兼容接口间的桥梁
  • 适配者 Adaptee :需要被适配的对象,该接口与目标接口不兼容
  • 客户端 Client :使用目标接口的对象

特点:

  • 当需要将一个已有的类或接口与另一个不兼容的类或接口进行协同工作时
  • 当需要对一个已有的类或接口进行修改,以满足客户端的需求时,但是不希望修改该类或接口的源代码
  • 当需要重新使用一个已有的类或接口,但是不能直接使用该类或接口的方法时

实现方式:

使用经验:

  • 由适配器来间接调用适配者方法
  • 适配者无需实现目标接口,只需要当作参数或成员变量来传入适配器
  • Java IO流,每个数据源都有不同接口,但是Java IO可以将它们转为统一标准接口
  • Java Servlet API 定义一组接口处理HTTP请求与相应。每个Servlet都实现这些接口,但是用户只需要实现一部分

代理模式

特点:

  • 跨模块调用
  • 跨进程调用
  • 远程web调用(本地应用与远程web服务)

实现方式:

1、静态代理:

在代理类构造中真实类,最后由调用代理类的同名方法实现真实类的功能

2、动态代理

代理对象不需要接口,利用JDK的API动态构建代理对象

使用经验:

  • 当不能直接访问目标对象,可以访问该目标的代理对象
  • 目标对象实现的同时,还可以在代理类扩展目标对象的功能(静态代理中)
  • 动态代理只有代理类不同,用“ by 目标对象”自动加载代理过程
  • 形式参数(小括号里的)不能直接用,必须先用变量接受保存起来,调用变量使用
  • 形式参数前加val或var为成员变量,可以在类里直接调用
  • 接口可以含参,不可以有方法体

观察者模式

特点:

  • 定义对象之间一对多的依赖关系
  • 目标发生变化,所有依赖它的对象都会得到通知并自动更新

实现方式:

可以手动添加多个观察者,当观察对象调用某些方法,会通知并更新所有观察者的信息

所有观察者以集合形式存储在对象类里

添加观察者:

通知所有观察者数据更新:

使用经验:

  • 事件处理机制:Java中Swing GUI框架基于此实现,当用户与组件交互,组件通知注册的监听器,触发相应事件
  • 日志记录:日志变化通知文件输出流,控制台输出流
  • 用户界面设计:用户与UI元素交互,它们像注册的监听器发送事件通知,出发相应事件
  • 多线程编程:线程发生变化,向其他线程通知,实现线程间协作和同步
http://www.ds6.com.cn/news/29380.html

相关文章:

  • 做男装比较好的网站有哪些seo文章推广
  • vs做网站怎样添加图片谷歌seo推广公司
  • 新手学做网站的书南宁网站建设服务公司
  • 购物网站页面设计图片免费b站推广软件
  • 深圳深圳龙岗网站建设武汉seo认可搜点网络
  • 北京品牌网站建设公司哪家好下载优化大师
  • 山东省聊城建设学校网站厦门seo小谢
  • 做网站 发现对方传销企业查询免费
  • 开拓网站建设公司百度收录提交网址
  • 你注册过哪些网站官网网络营销方法有哪些?
  • 中国建设银行网站个人客户淘宝店铺买卖交易平台
  • 免费下载模板的网站有哪些百度网页电脑版入口
  • 织梦网站后台密码推广项目网站
  • 凯里网络公司建设网站app推广渠道有哪些
  • 网站里的搜索怎么做的企业查询平台
  • 动态网站作业龙华网站建设
  • 网站建设公司 优势东莞市民最新疫情
  • 成都网站seo服务简述什么是seo
  • 外贸通过哪些渠道找客户广告优化师前景怎样
  • 可以做彩票广告的网站吗企业培训公司有哪些
  • 群晖wordpress 外网访问北京核心词优化市场
  • 甘肃做网站的公司网站怎么才能被百度收录
  • 阿里云可以做网站企业营销网站建设系统
  • 免费建网站样板手机版充电宝seo关键词优化
  • 壹财富 网站开发今日头条新闻推荐
  • 社区营销优化 保证排名
  • 北京网站开发人员网站排名优化培训
  • 网站首页的图标是怎么做的上海关键词排名优化价格
  • 网页设计与网站建设是干嘛的seo整站网站推广优化排名
  • 保定市人民政府网站南京百度关键字优化价格