java领域模型设计实例_java百战之路

本文介绍了Java领域模型设计中的设计模式,包括单例、工厂、观察者模式等,并探讨了Java中的单例模式实现。此外,还讨论了SpringData的相关内容,如Servlet、JPA和SpringDataRedis的理解,以及Mybatis的执行流程和常用类接口的作用。
摘要由CSDN通过智能技术生成

设计模式

  1. 什么是设计模式?你是否在你的代码里面使用过任何设计模式?

设计模式是在软件设计中常见问题的通用、可反复使用、多数人知晓的一种解决方案或模板;这些解决方案是在相当长的一段时间内由众多软件开发人员通过反复试验获得的。

设计模式可分为创建型模式、结构型模式以及行为型模式

创建型模式:单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式

结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式

行为型模式:模板方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式

  1. 你可以说出几个在JDK库中使用的设计模式吗?

Decorator(装饰在模式)设计模式常被用于Java IO流中

Singleton(单例模式)常被用在运行环境中,Calendar以及各种其他类

Factory(工厂模式)常被用于各种不可变类

Obsever(观察者模式)常被用于Swing和许多事件监听器框架中。

  1. Java中什么是单例设计模式?用Java写出线程安全的单例

单例模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

懒汉式

public class SingletonDemo2 {
private static SingletonDemo2 instance;
private SingletonDemo2() {
}
public static synchronized SingletonDemo2 getInstance() {
if (instance == null) {
instance = new SingletonDemo2();
}
return instance;
}
}

饿汉式

public class SingletonDemo1 {
private static SingletonDemo1 instance = new SingletonDemo1();
private SingletonDemo1() {
}
public static SingletonDemo1 getInstance() {
return instance;
}
}

枚举式

public enum SingletonDemo5 {
INSTANCE;
private SingletonDemo5() {
}
public void singletonOperation() {
}
}

静态内部类式

public class SingletonDemo4 {
private SingletonDemo4() {
}
public static SingletonDemo4 getInstance() {
return SingletonDemo4.SingletonClassInstance.instance;
}
private static class SingletonClassInstance {
private static final SingletonDemo4 instance = new SingletonDemo4((SingletonDemo4)null);
private SingletonClassInstance() {
}
}
}

  1. 使用工厂模式最主要的好处是什么?你在哪里使用?

在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。解决了接口选择的问题,实现了创建者和调用者的分离。

使用场景:

(1)数据库访问,当用户不知道最后系统采用哪一类数据库,以及数据库可能有变化时。

(2)设计一个连接服务器的框架,需要三个协议,"POP3"、"IMAP"、"HTTP",可以把这三个作为产品类,共同实现一个接口。

  1. 在Java中,什么叫观察者设计模式(observer design pattern)

Observer(观察者模式):定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新

  1. 举一个用Java实现的装饰模式(decorator design pattern)?它是作用于对象层次还是类层次?

装饰模式就是在不必改变原类文件和使用继承的情况下给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。它是通过场景一个包装对象,也就是装饰来包裹真实的对象。

装饰模式角色组成:

(1)抽象构件(Component)角色:给出一个抽象接口,以规范准备接收附加职责的对象。

(2)具体构件(Concrete Component)角色:定义一个将要接收附加职责的类。

(3)装饰(Decorator)角色:持有一个构件(Component)对象的实例,并实现一个与抽象构件接口一致的接口,从外类来扩展Component类的功能,但对于Component类来说,是无需知道Decorato的存在的。

(4)具体装饰(Concrete Decorator)角色:负责给构件对象添加上附加的职责。

d312ce278ef6a86cc402a49d487d1405.png

装饰模式作用于类层次。

  1. 什么是MVC设计模式?举一个MVC设计模式的例子?

MVC:Model-View-Controller(模型-视图-控制器)

Model(模型)-模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。

View(视图)-视图代表模型包含的数据的可视化。

Controller(控制器)-控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。

MVC设计模式实例:

创建一个作为模型的 Student 对象。StudentView 是一个把学生详细信息输出到控制台的视图类,StudentController 是负责存储数据到 Student 对象中的控制器类,并相应地更新视图 StudentView。

27c106a0d5f0efa5c8b91020c66212ed.png
  1. Java中什么是表示层设计模
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值