摘要:
盖房项目需求 1、需要建房子:这一过程为打桩、砌墙、封顶; 2、房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不要相同的; 3、请编写程序,完成需求。 传统方式 1、房子类 房子抽象父类: 普通房子: 高楼: 2、Client类 传统方式解决盖房需求问题的优缺点分析: 优 阅读全文
摘要:
克隆羊项目需求 现在有一只羊tom,姓名为: tom,年龄为:1,颜色为:白色,请编写程序创建和tom羊属性完全相同的10只羊。 传统方式 1、Sheep类 2、客户端代码 传统的方式的优缺点: 1、优点是比较好理解,简单易操作。 2、 在创建新的对象时,总是需要重新获取原始对象的属性,如果创建的对 阅读全文
摘要:
披萨项目需求 披萨项目新的需求:客户在点披萨时,可以点不同口味的披萨,比如北京的奶酪pizza、北京的胡椒pizza或者是伦敦的奶酪pizza、伦敦的胡椒pizza。 抽象工厂模式 1、抽象工厂模式:定义了一个interface用于创建相关或有依赖关系的对象簇,而无需指明具体的类; 2、抽象工厂模式 阅读全文
摘要:
披萨项目需求 披萨项目新的需求:客户在点披萨时,可以点不同口味的披萨,比如北京的奶酪pizza、北京的胡椒pizza或者是伦敦的奶酪pizza、伦敦的胡椒pizza。 按照简单工厂模式,可以创建不同的简单工厂类,比如BJPizzaSimpleFactory、LDPizzaSimpleFactory等 阅读全文
摘要:
披萨项目需求 萨的项目:要便于披萨种类的扩展,要便于维护。 1、披萨的种类很多(比如GreekPizz、CheesePizz等); 2、披萨的制作有prepare,bake, cut, box; 3、完成披萨店订购功能。 传统方式 1、我们将Pizza类相同的方法实现,将不同的方法做成抽象方法,由具 阅读全文
摘要:
所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。 比如Hibernate的SessionFactory,它充当数据存储源的代理,并负责创建Session对象。SessionFactory并不是轻量级的, 阅读全文
摘要:
设计模式的目的:编写软件过程中,程序员面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式是为了让程序(软件),具有更好的: 1、代码重用性 :相同功能的代码,不用多次编写; 2、可读性 :编程规范性,便于其他程序员的阅读和理解 3、可扩展性 :当需要增加新的功能时 阅读全文
摘要:
一、阻塞队列 阻塞队列,顾名思义,首先它是一个队列,而一个阻塞队列在数据结构中所起的作用大致如下图所示: 当阻塞队列是空时,从队列中获取元素的操作将会被阻塞; 当阻塞队列是满时,向队列中添加元素的操作将会被阻塞; 试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他的线程往空的队列插入新的元素。同 阅读全文
摘要:
一、原始构成 synchronized是关键字属于JVM层面,monitorenter(底层是通过monitor对象来完成,其实wait/notify等方法也依赖monitor对象只有在同步代码块和同步方法中才能调用wait/notify等方法) Lock是具体的类,是api层面的锁; 二、使用方法 阅读全文
摘要:
一、CountDownLatch CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。 比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。 CountDownLatch让 阅读全文