当前位置: 首页 > news >正文

面向对象——设计模式(创建型)

抽象工厂

在这里插入图片描述
在这里插入图片描述

public class AbstractFactory {public static void main(String[] args){Factory factory1=new Factory1();ProductA productA1=factory1.createProductA();productA1.info();ProductB productB1=factory1.createProductB();productB1.info();Factory factory2=new Factory2();ProductA productA2=factory2.createProductA();productA2.info();ProductB productB2=factory2.createProductB();productB2.info();}
}interface ProductA{public void info();}interface ProductB{public void info();}class ProductA1 implements ProductA{@Overridepublic void info() {System.out.println("产品的信息:A1");}}class ProductA2 implements ProductA{@Overridepublic void info() {System.out.println("产品的信息:A2");}}class ProductB1 implements ProductB{@Overridepublic void info() {System.out.println("产品的信息:B1");}}class ProductB2 implements ProductB{@Overridepublic void info() {System.out.println("产品的信息:B2");}}interface Factory{public ProductA createProductA();public ProductB createProductB();}class Factory1 implements Factory{@Overridepublic ProductA createProductA() {return new ProductA1();}@Overridepublic ProductB createProductB() {return new ProductB1();}}class Factory2 implements Factory{@Overridepublic ProductA createProductA() {return new ProductA2();}@Overridepublic ProductB createProductB() {return new ProductB2();}}

生成器(Builder)
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不用的表示。
在这里插入图片描述
在这里插入图片描述

import java.util.ArrayList;
import java.util.List;public class BuilderModel
{public static void main(String[] args){Director director=new Director();Builder builder1=new Builder1();director.Construct(builder1);Product product1=builder1.getResult();product1.show();Builder builder2=new Builder2();director.Construct(builder2);Product product2=builder2.getResult();product2.show();;}
}class Director{public void Construct(Builder builder){builder.BuildPart();}
}abstract class Builder{public abstract void BuildPart();public abstract Product getResult();
}class Builder1 extends Builder{Product product=new Product();@Overridepublic void BuildPart() {product.Add("A");product.Add("B");product.Add("C");product.Add("D");}@Overridepublic Product getResult() {return product;}
}class Builder2 extends Builder{Product product=new Product();@Overridepublic void BuildPart() {product.Add("a");product.Add("b");product.Add("c");product.Add("d");}@Overridepublic Product getResult() {return product;}
}class Product{List<String> parts=new ArrayList<String>();public void Add(String part){parts.add(part);}public void show(){System.out.println("产品的组成:");for(String s:parts)System.out.print(s+"");System.out.print("\n");}}

原型

在这里插入图片描述
在这里插入图片描述

public class PrototypeModel {public static void main(String[] args){Product product1=new Product(2022,5.21);System.out.println(product1.getID()+" "+product1.getPrice());product1.Clone();Product product2=(Product) product1.Clone();System.out.println(product2.getID()+" "+product2.getPrice());}}interface Prototype{public Object Clone();
}class Product implements Prototype{private  int id;private double price;public Product(){}public Product(int id,double price){this.id=id;this.price=price;}public int getID(){return id;}public double getPrice(){return price;}@Overridepublic Object Clone() {Product object=new Product();object.id=this.id;object.price=this.price;return object;}
}

单例模式
在这里插入图片描述

public class SingletonModel{public static void main(String[] args){Singleton singleton1=Singleton.getInstance();}}class Singleton{private static Singleton instance=new Singleton();private Singleton(){}    //仅有唯一一个实例public static Singleton getInstance(){return instance;}
}
http://www.dtcms.com/a/520003.html

相关文章:

  • 05_逻辑回归
  • Dify从入门到精通 第25天 在 Dify 中构建智能天气查询机器人
  • 【设计模式】代理模式(Proxy)
  • 怎么建手机网站wordpress和公众号
  • ADS ERROR:invalid class id(0x71c)问题记录
  • 模板号专注于网站企业网站建设的类型
  • golang学习笔记:标准库slices
  • golang学习笔记:标准库os
  • Python机器学习---5.决策树
  • 恶劣天气目标检测IA-YOLO
  • Google Now in Android(NIA)
  • Flink中的Lookup join和Temporal join 的语法是一样的吗?
  • 网站建设和网站维护上海工商网上办事大厅电话
  • ROS2(补充)Docker容器 + vscode开发
  • 7sch C++ <B> weak_ptr circular reference 1/99
  • Docker 拉取 MySQL 5.7 镜像、启动容器并进入 MySQL
  • 苏州建设网站制作wordpress做教育网站
  • 代理记账网站模板如何自己开网址
  • 【Linux基础知识系列:第一百五十三篇】现代网络管理:NetworkManager与nmcli
  • D028 vue+django知识图谱可视化系统|AI 相关
  • 秒杀系统设计:打造高并发、高可用架构的实战指南
  • 当无符号与有符号整数相遇:C++中的隐式类型转换陷阱
  • Maya Python入门:创建球体polySphere、创建工具架、编辑工具架、查看命令的长名称
  • 邯郸市做网站的公司广州手机网站建设报价
  • 数据结构3:复杂度
  • 记录一下c中数据元素 值传递和地址传递
  • springboot高校网上订餐平台的设计与实现(代码+数据库+LW)
  • Datawhale人工智能的数学基础 202510第4次作业
  • 公司网站建立费用太原seo团队
  • 做视频网站的备案要求平面设计兼职接单