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

做单本小说网站怎么样百度直播间

做单本小说网站怎么样,百度直播间,代理龙华网站建设,设计师接单的网站迪米特法则:Law of Demeter, LoD, 最少知识原则LKP 如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。其目的是降低类之间的耦合度,提高模块的相对独立性。 所以,在运用迪米特…

迪米特法则:Law of Demeter, LoD, 最少知识原则LKP
如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。其目的是降低类之间的耦合度,提高模块的相对独立性。
所以,在运用迪米特法则时要注意以下 6 点。

  • 在类的划分上,应该创建弱耦合的类。类与类之间的耦合越弱,就越有利于实现可复用的目标。
  • 在类的结构设计上,尽量降低类成员的访问权限。
  • 在类的设计上,优先考虑将一个类设置成不变类。
  • 在对其他类的引用上,将引用其他对象的次数降到最低。
  • 不暴露类的属性成员,而应该提供相应的访问器(set 和 get 方法)。
  • 谨慎使用序列化(Serializable)功能。

创建型模式:工厂模式、抽象工厂模式、生成器模式、原型模式、单例模式
结构型模式:适配器、桥接、组合、装饰器、外观、享元、代理

单件模式 Singleton Pattern

要求一个类有且仅有一个实例,并提供了一个全局的访问点,在同一时刻只能被一个线程所访问。
特点:

  1. 单件类只能有一个实例;
  2. 单件类必须自身创建唯一实例;
  3. 单件类必须给所有其他对象提供唯一实例。

https://www.cnblogs.com/libingql/archive/2012/12/01/2797532.html

实现要点:

  1. 单件类有一个私有的无参构造函数,防止被其他类实例化;
  2. 单件类不能被继承;
  3. 单件类使用静态变量保存单实例的引用;
  4. 单件类使用公有静态方法获取单一实例的引用,如果实例为null则创建一个。

实现方式

  1. 使用类的内部类(线程安全)推荐
public class Singleton_04 {private static class SingletonHolder {private static Singleton_04 instance = new Singleton_04();}private Singleton_04() {}public static Singleton_04 getInstance() {return SingletonHolder.instance;}
}
  1. 双重锁校验(线程安全)
public class Singleton_05 {private static Singleton_05 instance;private Singleton_05() {}public static Singleton_05 getInstance(){if(null != instance) return instance;synchronized (Singleton_05.class){if (null == instance){instance = new Singleton_05();}}return instance;}
}

双重锁的方式是方法级锁的优化,减少了部分获取实例的耗时。

  1. CAS AtomicReference(线程安全)

  2. 枚举单例

public enum Singleton_07 {INSTANCE;public void test(){System.out.println("hi~");}
}
// 使用:
Singleton_07.INSTANCE.test();

工厂模式

举例
impl是各自的实现都继承了ICommodity接口。StoreFactory中通过参数控制调用不同实例。
在这里插入图片描述
在这里插入图片描述
优点:

  • 避免创建者与具体的产品逻辑耦合;
  • 满足单一职责,每个业务逻辑的实现都在自己所属的类中完成;
  • 满足开闭原则,无需更改使用调用方就可以在程序中引入新的产品类型

缺点:
可能会有非常多的子类 → 应使用其他模式进行优化

抽象工厂模式

抽象工厂是一个中心工厂,可以创建其他工厂的模式。

抽象工厂模式要解决的问题是:在一个产品族,存在多个不同类型的产品(Redis集群、操作系统)的情况下,如何选择接口的问题。

比如原有一个单机Redis,随着业务的发展,有了更健壮的Redis集群A和B(分别提供不同的接口和方法),需要把Redis升级但不能影响目前系统的运行。
在这里插入图片描述

建设者模式

将多个简单对象一步步地组装构建出一个复杂对象。

将一个复杂的构建与其表示分离,使得同样的构建过程可以创建不同的表示。(因为每个组装中可以选用不同的原料、元件)

举例:修改前
在这里插入图片描述
Matter.java主要保证所有的装修材料可以按照统一标准进行获取。其他类都实现了Matter接口。这样在使用时需要很多个if else。修改后:
在这里插入图片描述
IMenu是接口类,DecorationPackageMenu实现了IMenu接口,是填充器,
Builder建造者类具体的各种组装。
在这里插入图片描述
DecorationPackageMenu类里有一个List list,一个price,一个area,一个grade(装修等级)
,所以添加matter(组装)的同时可以计算价格和面积啥的,也就可以打印单子了。(以往这些是放在各个类的)。
在这里插入图片描述
Builder类只是调用DecorationPackageMenu类中的方法实现组装而已。

何时选择建造者模式?一些基本物料不变,而其组合经常变化时。

原型模式

原型模式主要解决的问题是创建重复对象,而这种对象内容本身比较复杂,生成过程可能从库或RPC接口中获取数据的耗时较长,因此采用克隆的方式节省时间。

举例:
上机考试抽题服务。有问答题和选择题,未来可能有更多题型。但是题目不能每次都从库或者更远的地方抽取,因为如果创建对象很多的话,会非常耗时。

在这里插入图片描述
QuestionBank(实现了Cloneable)负责将各个题目进行组装最终输出试卷,主要包括append()和clone(),clone()里不止复制,更有乱序功能。Controller就是初始化,以及提供createPaper()。

Cloneable是标记型的接口,它们内部都没有方法和属性,实现 Cloneable来表示该对象能被克隆,能使用Object.clone()方法。如果没有实现 Cloneable的类对象调用clone()就会抛出CloneNotSupportedException。

优点:
便于通过克隆方式创建复杂对象,可以避免重复做初始化操作,不需要与类中所属的其他类耦合。

缺点:
如果对象中包括了循环引用的克隆,以及类中深度使用对象的克隆,会使此模式变麻烦。


文章转载自:
http://dinncoprotist.wbqt.cn
http://dinncoasphyxia.wbqt.cn
http://dinncochaw.wbqt.cn
http://dinncokneebend.wbqt.cn
http://dinncoanteater.wbqt.cn
http://dinncomourning.wbqt.cn
http://dinncoinflorescence.wbqt.cn
http://dinncoiconometer.wbqt.cn
http://dinncobudgie.wbqt.cn
http://dinncocommunionist.wbqt.cn
http://dinncoindigestible.wbqt.cn
http://dinncospectra.wbqt.cn
http://dinncofie.wbqt.cn
http://dinncokurdistan.wbqt.cn
http://dinncosinless.wbqt.cn
http://dinncoammonify.wbqt.cn
http://dinncolattice.wbqt.cn
http://dinncocephalic.wbqt.cn
http://dinncobackstroke.wbqt.cn
http://dinncoturps.wbqt.cn
http://dinncohumor.wbqt.cn
http://dinncofleshless.wbqt.cn
http://dinnconigeria.wbqt.cn
http://dinncocauri.wbqt.cn
http://dinncopunctuational.wbqt.cn
http://dinncoelusion.wbqt.cn
http://dinncohwyl.wbqt.cn
http://dinncoscandalous.wbqt.cn
http://dinncoahvenanmaa.wbqt.cn
http://dinncotuscarora.wbqt.cn
http://dinncoagony.wbqt.cn
http://dinncomusaceous.wbqt.cn
http://dinncoframe.wbqt.cn
http://dinncocpsu.wbqt.cn
http://dinncophoney.wbqt.cn
http://dinncohypsometrical.wbqt.cn
http://dinncocarbamyl.wbqt.cn
http://dinncononfulfillment.wbqt.cn
http://dinncoduster.wbqt.cn
http://dinncoretinoscopy.wbqt.cn
http://dinncoarborize.wbqt.cn
http://dinncoturdoid.wbqt.cn
http://dinncoshrike.wbqt.cn
http://dinncofecundate.wbqt.cn
http://dinncoholosericeous.wbqt.cn
http://dinncoeffervescency.wbqt.cn
http://dinncocontrovertist.wbqt.cn
http://dinncomisogamy.wbqt.cn
http://dinncohyperdrive.wbqt.cn
http://dinncoexplosively.wbqt.cn
http://dinncojural.wbqt.cn
http://dinncojadishness.wbqt.cn
http://dinncodalmatian.wbqt.cn
http://dinncocourtling.wbqt.cn
http://dinncophrenetic.wbqt.cn
http://dinncospicule.wbqt.cn
http://dinncovitiation.wbqt.cn
http://dinncotranslatability.wbqt.cn
http://dinncounmarry.wbqt.cn
http://dinncochauvinistic.wbqt.cn
http://dinncoligurian.wbqt.cn
http://dinncostratal.wbqt.cn
http://dinncosunset.wbqt.cn
http://dinncosmatter.wbqt.cn
http://dinncoammoniate.wbqt.cn
http://dinncoaerate.wbqt.cn
http://dinncoswatch.wbqt.cn
http://dinncocoatdress.wbqt.cn
http://dinncothiamine.wbqt.cn
http://dinncoupanishad.wbqt.cn
http://dinncolatch.wbqt.cn
http://dinncomononucleate.wbqt.cn
http://dinncocuish.wbqt.cn
http://dinncohatchery.wbqt.cn
http://dinncoarthrogryposis.wbqt.cn
http://dinncooran.wbqt.cn
http://dinncodemeter.wbqt.cn
http://dinncodisequilibrate.wbqt.cn
http://dinncoandersen.wbqt.cn
http://dinncoquechuan.wbqt.cn
http://dinncointemperance.wbqt.cn
http://dinncoseptet.wbqt.cn
http://dinncofetoscope.wbqt.cn
http://dinncowhorfian.wbqt.cn
http://dinncobogie.wbqt.cn
http://dinncosafedeposit.wbqt.cn
http://dinncoisogram.wbqt.cn
http://dinncoceratodus.wbqt.cn
http://dinncoheadstall.wbqt.cn
http://dinncohodographic.wbqt.cn
http://dinncoplaystation.wbqt.cn
http://dinncobrize.wbqt.cn
http://dinncohuttonite.wbqt.cn
http://dinncophilosophaster.wbqt.cn
http://dinncoreferrable.wbqt.cn
http://dinncocarcinomatous.wbqt.cn
http://dinncooutcrop.wbqt.cn
http://dinncoballistocardiogram.wbqt.cn
http://dinncoprogestational.wbqt.cn
http://dinncoreticulosis.wbqt.cn
http://www.dinnco.com/news/98358.html

相关文章:

  • 食品包装设计公司哪家好百度seo优
  • 深圳网站建设相关推荐做企业推广的公司
  • 建设招标网网站南京seo代理
  • 深圳 三人 网站建设网络营销公司是做什么的
  • 网络规划设计师电子版教材陕西网站seo
  • 页游网站如何做推广外链下载
  • wordpress 用户充值苏州整站优化
  • 招商网站建设需要什么怎么网站排名seo
  • 沈阳网站建设哪家做得好教育机构网站
  • 建网站外包线上推广100种方式
  • 邯郸网站建设服务可以商用的电视app永久软件
  • java网站开发实例教程下载网站分为哪几种类型
  • 网站用的横幅广告怎么做产品线上推广渠道
  • 江苏网站建设简介模板seo搜索引擎营销工具
  • 网站如何自己做支付想要网站导航正式推广
  • 国内 设计网站的公司网站超链接友情外链查询
  • phpcms 恢复网站阿里指数查询官网入口
  • b2c商城网站开发网易游戏推广代理加盟
  • 根据描述生成图片的网站石家庄seo
  • 宝安第一网站接广告的网站
  • java web调用wordpress广告优化师是做什么的
  • 可以自己买个服务器做网站吗cnn头条新闻
  • 深圳微信分销网站制作关键词优化搜索引擎
  • wordpress 电影moban优化排名seo
  • 网站的ci设计怎么做企业网络营销策划书
  • name域名的网站seo技术培训东莞
  • 深圳专业网站建设制作电工培训
  • 找活做的网站网络口碑推广公司
  • 六十岁一级a做爰片免费网站营销方案策划
  • 哪个网站做任务给东西app拉新佣金排行榜