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

做外贸有哪些好的网站牟长青 做网站推广的四个基本要点

做外贸有哪些好的网站,牟长青 做网站推广的四个基本要点,微信公众平台申请官网,wordpress 小米路由器单例设计模式#xff08;2#xff09; 单例模式存在的问题 单例对 OOP 特性的支持不友好 oop的特性#xff1a;封装、继承、多态、抽象#xff1b;以Id生成器代码为例#xff0c;如果未来某一天#xff0c;我们希望针对不同的业务采用不同的 ID 生成算法。比如#x…单例设计模式2 单例模式存在的问题 单例对 OOP 特性的支持不友好 oop的特性封装、继承、多态、抽象以Id生成器代码为例如果未来某一天我们希望针对不同的业务采用不同的 ID 生成算法。比如订单 ID 和用户 ID 采用不同的 ID 生成器来生成。为了应对这个需求变化我们需要修改所有用到 IdGenerator 类的地方这样代码的改动就会比较大。 单例会隐藏类之间的依赖关系 通过构造函数、参数传递等方式声明的类之间的依赖关系我们通过查看函数的定义就能很容易识别出来。但是单例类不需要显示创建、不需要依赖参数传递在函数中直接调用就可以了。如果代码比较复杂这种调用关系就会非常隐蔽。在阅读代码的时候我们就需要仔细查看每个函数的代码实现才能知道这个类到底依赖了哪些单例类。 单例对代码的扩展性不友好 以数据库连接池为例数据库连接池是单例的但是在一个系统中存在慢sql这些 SQL 语句在执行的时候长时间占用数据库连接资源导致其他 SQL 请求无法响应。我们需要将数据库连接池隔离开一个是正常的sql执行一个是慢sql的执行器如果设计为单例的模式印象了扩展性 单例对代码的可测试性不友好 首先单例模式的硬编码式使用方式使得在编写单元测试时无法轻松地通过 mock 替换依赖的外部资源比如数据库。、其次单例类持有的成员变量相当于全局变量被所有代码共享 如果这些成员变量是可变的就可能导致不同测试用例之间相互影响的问题需要特别注意。这种情况类似于全局变量的使用容易造成测试结果不确定性和测试用例之间的耦合。 单例不支持有参数的构造函数 数据库连接池的情况下需要设置数据库连接池的大小、最大的连接数、连接存活时间等 替代方案 引入外部的配置类可以使用代码的形式、可以采用从配置文件中加载的方式在单例类初始化时对单例类的成员变量进行赋值 /*** 配置类在单例类中使用依赖注入的方式或者其他方式引入*/ class Config {public static int parmaA;public static int parmaB; }/*** 单例类*/ public class Singleton {private static Singleton instance null;private final int paramA;private final int paramB;public Singleton() {this.paramA Config.parmaA;this.paramB Config.parmaA;}public static Singleton getInstance() {if (instance null) {synchronized (Singleton.class) {if (instance null) {instance new Singleton();}}}return instance;} }替代方案 为了保证全局唯一除了使用单例我们还可以用静态方法来实现。这也是项目开发中经常用到的一种实现思路 // 静态方法实现方式 public class IdGenerator {private static AtomicLong id new AtomicLong(0); public static long getId() {return id.incrementAndGet();} } // 使用举例long id IdGenerator.getId();使用过程中的方法 // 1. 老的使用方式public demofunction() { //...long id IdGenerator.getInstance().getId(); //...}// 2. 新的使用方式依赖注入public demofunction(IdGenerator idGenerator) {long id idGenerator.getId();}// 外部调用demofunction()的时候传入idGeneratorIdGenerator idGenerator IdGenerator.getInsance();demofunction(idGenerator);但是这是解决了决单例隐藏类之间依赖关系对于其他的问题还是无法解决 我们本质上是实现类的全局唯一性除了单例模式我们还可以通过工厂方法IOC容器等方案来保证
http://www.w-s-a.com/news/874774/

相关文章:

  • 全球排名前十网站百度网站官网网址
  • 商家在携程旅游网站怎样做宣传做网站公司苏州
  • 芜湖做网站都有哪些广州音乐制作公司
  • 青岛好的网站制作推广注册公司流程步骤
  • 怎么制作营销网站模板wordpress苗木模板
  • 手机网站样例wordpress 排序
  • 济南网站建设手机网站开发人员需要去做原型吗
  • 动易网站模板下载微信支付 wordpress
  • 学校建设外文网站情况阿里云 建设网站怎么样
  • 网站建设与网页设计制作深圳网站建设首选上榜网络
  • 网站浏览成交指标计算机应用是做什么的
  • 企业网站建设的要求wordpress 404页面模板
  • 公司怎么注册官方网站wordpress花园网站
  • 一般网站的建设步骤有哪些企业网站建设应该注意什么事项问题
  • 枣庄市建设局网站建设工程合同交底的内容包括
  • 全国十大跨境电商排名seo优化入门教程
  • 福安网站开发网站内容建设要求age06
  • 网站开发制作公司罗湖在线
  • 做网站银川潍坊网络科技有限公司
  • 南宁企业网站建站模板盐田高端网站建设
  • 深圳市建设局网站张局北京档案馆网站建设
  • 运动健身型网站开发网站备案掉了什么原因
  • 网站开发的前后端是什么注册网站多少钱一年
  • 彩票网站建设需要什么网站未备案被阻断怎么做
  • wordpress 版权声明网站优化排名哪家性价比高
  • dedecms网站关键词外包做网站平台 一分钟
  • 酒网站建设游戏分类网站怎么做
  • 仿牌网站安全北京大良网站建设
  • ps中怎样做网站轮播图片吉林省网站建设公司
  • 广西网站建设-好发信息网温江做网站哪家好