单例模式
简述
单例模式是一种创建型设计模式,它保证一个类只有一个实例,并提供全局访问点。这意味着在整个应用程序中,只能存在一个该类的对象实例。
主要特点
- 一个类只有一个实例对象。
- 提供一个全局访问点,使其他对象可以通过该访问点访问到唯一的实例。
优点
- 避免了重复创建对象,节省了系统资源。
- 提供了对唯一实例的集中控制。
Java代码示例
public class Singleton {
// 私有静态成员变量,保存唯一实例
private static Singleton instance;
// 私有构造方法,防止外部实例化
private Singleton() {}
// 公有静态方法,获取唯一实例
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
上面是一个典型的懒汉式单例模式的实现,其中私有静态成员变量 instance
保存唯一实例,在公有静态方法 getInstance()
中进行实例化并返回。通过在 getInstance()
方法中进行判断,只有当 instance
为空时才进行实例化,避免了重复创建对象。
建造者模式
简述
建造者模式是一种创建型设计模式,它将一个复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。文章来源:https://www.toymoban.com/news/detail-521806.html
主要角色
- Product(产品):定义了构建过程中所创建的复杂对象。
- Builder(抽象建造者):定义了构建复杂对象所需的各个步骤接口。
- ConcreteBuilder(具体建造者):实现了抽象建造者接口,负责实现各个步骤的具体逻辑,并返回最终构建的产品。
- Director(指挥者):负责调用建造者的各个步骤来构建复杂对象,控制构建过程的顺序和逻辑。
优点
- 将复杂对象的构建过程封装在具体建造者类中,与产品类解耦。
- 可以改变产品的内部表示和表示构建过程,对客户端隐藏具体实现细节。
- 可以灵活组合和扩展建造过程,实现不同的产品构建。
Java代码示例
public class Product {
private String part1;
private String part2;
// 其他成员...
public void setPart1(String part1) {
this.part1 = part1;
}
public void setPart2(String part2) {
this.part2 = part2;
}
// 其他方法...
}
public interface Builder {
void buildPart1();
void buildPart2();
Product getResult();
}
public class ConcreteBuilder implements Builder {
private Product product;
public ConcreteBuilder() {
this.product = new Product();
}
@Override
public void buildPart1() {
product.setPart1("Part1");
}
@Override
public void buildPart2() {
product.setPart2("Part2");
}
@Override
public Product getResult() {
return product;
}
}
public class Director {
public Product construct(Builder builder) {
builder.buildPart1();
builder.buildPart2();
return builder.getResult();
}
}
public class Client {
public static void main(String[] args) {
Builder builder = new ConcreteBuilder();
Director director = new Director();
Product product = director.construct(builder);
// 获取构建完成的产品
}
}
上述代码展示了建造者模式的一个简单实现。其中 Product
是待构建的复杂对象,Builder
是抽象建造者接口,ConcreteBuilder
是具体建造者类,Director
是指挥者类。客户端通过指挥者调用建造者的各个步骤来构建复杂对象。使用建造者模式可以实现不同的具体建造者类来构建不同的产品,且可以灵活组合和扩展建造过程。文章来源地址https://www.toymoban.com/news/detail-521806.html
到了这里,关于【软件设计模式——单例模式和建造者模式】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!