摘要:
领域模型对于业务系统是更好的选择 我们都知道,软件开发的核心难度在于处理隐藏在业务知识中的复杂度,那么模型就是对这种复杂度的简化与精炼。所以从某种意义上说,Eric倡导的领域驱动设计是一种模型驱动的设计方法:通过领域模型(Domain Model)捕捉领域知识,使用领域模型构造更易维护的软件。 模型 阅读全文
摘要:
针对并发编程,Java提供了很多并发工具类供我们使用,下面我们详细介绍一下。 Semaphore Semaphore,现在普遍翻译为“信号量”,以前也曾被翻译成“信号灯”,因为类似现实生活里的红绿灯,车辆能不能通行,要看是不是绿灯。同样,在编程世界里,线程能不能执行,也要看信号量是不是允许。信号量模 阅读全文
摘要:
1.可见性、原子性和有序性问题 多线程有三大特性,分别是可见性、原子性和有序性。 1.1可见性 在单核时代,所有的线程都是在一颗CPU上执行,CPU缓存与内存的数据一致性容易解决。因为所有线程都是操作同一个CPU的缓存,一个线程对缓存的写,对另外一个线程来说一定是可见的。一个线程对共享变量的修改,另 阅读全文
摘要:
Redis缓存有哪些淘汰策略 缓存被写满是不可避免的。即使你精挑细选,确定了缓存容量,还是要面对缓存写满时的替换操作。缓存替换需要解决两个问题:决定淘汰哪些数据,如何处理那些被淘汰的数据。接下来,我们来看看Redis中的数据淘汰策略。 Redis 4.0之前一共实现了6种内存淘汰策略,在4.0之后, 阅读全文
摘要:
架构到底是指什么 要想准确地理解架构的定义,关键就在于把三组容易混淆的概念梳理清楚: 系统与子系统 模块与组件 框架与架构 系统与子系统 系统泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能单独完成的工作的群体。它的意思是“总体”“整体”或“联盟”。子系统也是由一群有关联的个体所组成 阅读全文
摘要:
1.什么是工厂模式 工厂模式是一种比较常见的设计模式,它有三种表现形式,分别是:简单工厂、工厂方法和抽象工厂。 2.工厂模式的三种表现形式 2.1简单工厂(Simple Factory) 简单工厂模式就是将创建对象的操作都托管给一个公共的对象方法,需要获取某个对象的时候从某个工厂类取就好了。 1 p 阅读全文