设计模式(二)
设计模式(二)
链接
JVM学习笔记(一)
JVM学习笔记(二)
JVM学习笔记(三)
JVM学习笔记(四)
(待更新…)
Java NIO
(待更新…)
设计模式(一)
设计模式(二)
设计模式(三)
设计模式(四)
(待更新…)
1. 原型模式
关键实现
原型模式的核心关键实现是clone()方法, 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 原型模式就是原型拷贝。
代码实现
通过实现Cloneable接口。
public class Student implements Cloneable {
private int id;
private String name;
private int score;
// 复制新对象并返回:
public Object clone() {
Student std = new Student();
std.id = this.id;
std.name = this.name;
std.score = this.score;
return std;
}
}
1.1 深拷贝和浅拷贝
浅拷贝
复制基本类型的属性;引用类型的属性复制,复制栈中的变量 和 变量指向堆内存中的对象的指针,不复制堆内存中的对象
深拷贝
复制基本类型的属性;引用类型的属性复制,复制栈中的变量 和 变量指向堆内存中的对象的指针和堆内存中的对象。
2. 建造者模式
建造者模式使用多个简单的对象一步一步构建成一个复杂的对象。就好像搭房子一样。
建造者:创建和提供实例,导演(指挥者):管理建造出来的实例的依赖关系。
代码实现
工人接口
public Interface Iworker{
//工人要完成以下功能
public Iworker buildroof(String roof);
public Iworker buildwall(String wall);
public Iworker buildfloor(String floor);
//放回房子
public Home getHome();
}
房子实现类
public class Home{
private String roof;
private String wall;
private String floor;
...
//房子的get和set方法
}
工人
工人建造房子。
public class worker implements Iworker{
private Home home;
//工人先建造一个空的房子
public worker(){
this.home = new home();
}
@Override
public Iworker buildroof(String roof){
home.setRoof(roof);
System.out.println("屋顶建造成功");
return this;
}
@Override
public Iworker buildwall(String wall){
home.setRoof(wall);
System.out.println("墙建造成功");
return this;
}
@Override
public Iworker buildfloor(String floor){
home.setRoof(floor);
System.out.println("地板建造成功");
return this;
}
public Home getHome(){
return home;
}
}
指挥者
负责指挥建造
public class Director{
public Product build(builder builder){
builder.buildroof("黄金屋盖");
builder.buildfloor("黄金地板");
builder.buildroof("黄金墙");
return builder.getHome();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能