OOA/OOD&UML部分
UML是什么?有哪些常用的图?
UML是标准的建模语言;常用图包括:用例图、静态图(包括类图、对象图和包图),行为图、交互图(顺序图、合作图),实现图。
简述一下Singleton模式。
Singleton模式主要作用是保证在Java应用程序,一个类Class只有一个实例存在。举个例子:定义一个类,它的构造函数为private修饰的,它有一个static的private修饰的该类变量,在类初始化时实例化,通过一个public修饰的getInstance方法获取对它的引用,继而调用其中的方法。
1 //饿汉式
2 public class Singleton {
3 public final Singleton instance = new Singleton();
4 private Singleton() {}
5 public Singleton getInstance() {
6 return instance;
7 }
8
9 }
1 //懒汉式
2 public class Singleton {
3 private static Singleton instance;
4
5 private Singleton() {
6 }
7
8 public static Singleton getInstance() {
9 if (instance == null) {
10 instance = new Singleton();
11 return instance;
12 } else {
13 return instance;
14 }
15 }
16 }
其他形式:定义一个类,它的构造函数为private的,所有方法为static的。一般认为第一种形式要更加安全些。
说说你所熟悉或听说过的J2EE中的几种常用模式?及对设计模式的一些看法。
Session Facade Pattern: 使用SessionBean访问EntityBean;
Message Facade Pattern:实现异步调用;
EJB Command Pattern:使用Command JavaBeans取代SessionBean,实现轻量级访问;
Data Transfer Object Factory:通过DTO Factory简化EntityBean数据提供特性;
Generic Attribute Access:通过AttibuteAccess接口简化EntityBean数据提供特性;
Business Interface:通过远程(本地)接口和Bean类实现相同接口规范业务逻辑一致性;
EJB架构的设计好坏将直接影响系统的性能、可扩展性、可维护性、组建可重用性及开发效率。项目越复杂、项目队伍越庞大则越能体现良好设计的重要性。
Java中常见的设计模式有哪些?简述工厂模式。
Java中的23中设计模式:Factory(工厂模式)、Builder(建造模式)、Factory Method(工厂方法模式)、Prototype(原始模型模式)、Singleton(单例模式)、Facade(门面模式)、Adapter(适配器模式)、Bridge(桥梁模式)、Compsite(合成模式)、Decorator(装饰模式)、Flyweight(享元模式)、Proxy(代理模式)、Command(命令模式)、Interpreter(解释器模式)、Visitor(访问者模式)、Iterator(迭代子模式)、Mediator(调停者模式)、Memento(备忘录模式)、Observer(观察者模式)、State(状态模式)、Strategy(策略模式)、 Template Method(模版方法模式)、Chain Of Responsibleity(责任链模式);
工厂模式:工厂模式是一种经常被使用到的模式,根据工厂模式实现的类,可以根据提供的数据,生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行不同的操作。首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实例后,开发人员可以调用子类中的方法而不必考虑到底返回的是哪一个子类的实例。
开发中都用到了哪些设计模式?分别用在什么场合?
每一个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题解决方案的核心。通过这种方式,你可以无数此的使用那些已有的解决方案,无需再重复相同的工作。主要用到了MVC的设计模式,用来开发JSP/Servlet或者J2EE的相关应用及简单工厂模式。
简述软件开发中迭代的含义的理解。
软件开发中,各个开发的阶段不是顺序执行的,应该是并行执行,也就是迭代的意思。这样对于开发中的需求变化及人员变动都能得到更好的适应。