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

女士服装定制网站地推是什么

女士服装定制网站,地推是什么,网站如何做流媒体,搭建wordpress博客😀前言 设计模式,作为软件工程领域的核心概念之一,向我们展示了开发过程中面对的典型问题的经典解决方案。这些模式不仅帮助开发者创建更加结构化、模块化和可维护的代码,而且也促进了代码的复用性。通过这篇文章,我们…

😀前言
设计模式,作为软件工程领域的核心概念之一,向我们展示了开发过程中面对的典型问题的经典解决方案。这些模式不仅帮助开发者创建更加结构化、模块化和可维护的代码,而且也促进了代码的复用性。通过这篇文章,我们将探讨其中一些基本的设计模式,并为每个模式提供相应的代码示例,以便于更好地理解它们的实际应用。

🏠个人主页:尘觉主页
在这里插入图片描述

🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力😉😉

在csdn获奖荣誉: 🏆csdn城市之星2名
⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 💓Java全栈群星计划top前5
⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 🤗 端午大礼包获得者
⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 🥰阿里云专家博主
⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 😉亚马逊DyamoDB结营

💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰
如果文章有什么需要改进的地方还请大佬不吝赐教 先在次感谢啦😊

文章目录

  • 第七章 面向对象技术 补充-上
    • 🔺设计模式
      • 设计模式的要素
      • 创建型设计模式(5种)
      • 1. Simple Factory(简单工厂)
      • 2. Factory Method(工厂方法)
      • 3. Abstract Factory(抽象工厂)
      • 4. Builder(生成器)
      • 5. Prototype(原型)
      • 6. Singleton(单例)
    • 😄总结

第七章 面向对象技术 补充-上

🔺设计模式

设计模式的要素

设计模式的核心在于提供了相关问题的解决方案,使得人们可以更加简单方便地复用成功的设计和体系结构

设计模式基本要素:

  • 模式名称(Pattern Name)

  • 问题(Problem)

  • 解决方案(Solution)

  • 效果(Consequences)

      				<img src="https://picgoowyx.oss-cn-guangzhou.aliyuncs.com/imags/202309210851610.png" style="zoom:50%;" />
    

创建型设计模式(5种)

1. Simple Factory(简单工厂)

简单工厂模式属创建型模式,但不属于23种设计模式之一。

定义:定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。
在简单工厂模式中用于被创建实例的方法通常为静态(static)方法,因此简单工厂模式又被成为静态工厂方法(Static Factory Method)。

															<img src="https://picgoowyx.oss-cn-guangzhou.aliyuncs.com/imags/202309210851611.png" style="zoom:50%;" />
/*** 简单工厂模式*/
public class SimpleFactory {public static void main(String[] args) {Product productA = Factory.createProduct("A");productA.info();Product productB = Factory.createProduct("B");productB.info();}
}class Factory{public static Product createProduct(String type){Product product =null;switch (type){case "A":product = new ProductA();break;case "B":product = new ProductB();break;default:System.out.println("没有 " + type + " 类型的产品!");return null;}return product;}
}abstract class Product{public abstract void info();
}class ProductA extends Product{@Overridepublic void info() {System.out.println("产品的信息:A");}
}class ProductB extends Product{@Overridepublic void info() {System.out.println("产品的信息:B");}
}

2. Factory Method(工厂方法)

1)意图

定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。

2)结构

												<img src="https://picgoowyx.oss-cn-guangzhou.aliyuncs.com/imags/202309210851612.png" style="zoom:50%;" />
/*** 工厂方法模式*/
public class FactoryMethod {public static void main(String[] args) {// 父类 对象名 = new 子类();Factory factoryA = new FactoryA();Product productA = factoryA.createProduct();productA.info();Factory factoryB = new FactoryB();Product productB = factoryB.createProduct();productB.info();}
}interface Factory{Product createProduct();
}class FactoryA implements Factory{@Overridepublic Product createProduct() {return new ProductA();}
}class FactoryB implements Factory{@Overridepublic Product createProduct() {return new ProductB();}
}interface Product{void info();
}class ProductA implements Product{@Overridepublic void info() {System.out.println("产品的信息:A");}
}class ProductB implements Product{@Overridepublic void info() {System.out.println("产品的信息:B");}
}

3)适用性

Factory Method 模式适用于:

  • 当一个类不知道它所必须创建的对象的类的时候。
  • 当一个类希望由它的子类来指定它所创建的对象的时候。
  • 当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。

3. Abstract Factory(抽象工厂)

1)意图

提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。

2)结构

/*** 抽象工厂模式*/
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 Factory{ProductA createProductA();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();}
}// 为一类产品对象声明一个接口
interface ProductA{void info();
}interface ProductB{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");}
}

3)适用性

Abstract Factory 模式适用于:

  • 一个系统要独立于它的产品的创建、组合和表示时。
  • 一个系统要由多个产品系列中的一个来配置时。
  • 当要强调一系列相关的产品对象的设计以便进行联合使用时。
  • 当提供一个产品类库,只想显示它们的接口而不是实现时。

4. Builder(生成器)

1)意图

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

2)结构

import java.util.*;/*** 生成器模式*/
public class Main {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");product.add("E");product.add("F");}@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");}@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.print("产品的组成:");for (String part : parts) {System.out.print(part + " ");}System.out.println();}
}

3)适用性

Builder 模式适用于:

  • 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
  • 当构造过程必须允许被构造的对象有不同的表示时。

5. Prototype(原型)

1)意图

用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。

2)结构

其中:

  • Prototype声明一个复制自身的接口。
  • ConcretePrototype 实现一个复制自身的操作。
  • Client 让一个原型复制自身从而创建一个新的对象

/*** 原型模式*/
public class Main {public static void main(String[] args) {Product product1 = new Product(2022,5.28);System.out.println(product1.getId()+ " " + product1.getPrice());Product product2 = (Product) product1.Chlone();System.out.println(product2.getId()+ " " + product2.getPrice());}
}interface Prototype{Object Chlone();
}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 Chlone() {Product object = new Product();object.id = this.id;object.price = this.price;return object;}
}

3)适用性

Prototype 模式适用于:

  • 当一个系统应该独立于它的产品创建、构成和表示时。
  • 当要实例化的类是在运行时刻指定时,例如,通过动态装载。
  • 为了避免创建一个与产品类层次平行的工厂类层次时。
  • 当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们,可能比每次用合适的状态手工实例化该类更方便一些。

6. Singleton(单例)

1)意图

保证一个类仅有一个实例,并提供一个访问它的全局访问点。

2)结构

其中:Singleton指定一个Instance操作,允许客户访问它的唯一实例,Instance是一个类

操作:可能负责创建它自己的唯一实例。

/** * 单例模式*/
public class SingletonPattern {public static void main(String[] args) {Singleton instance1 = Singleton.getInstance();Singleton instance2 = Singleton.getInstance();Singleton instance3 = Singleton.getInstance();System.out.println("instance1: " + instance1);System.out.println("instance2: " + instance2);System.out.println("instance3: "+ instance3);}
}class Singleton{private static Singleton instance = new Singleton();private Singleton(){};public static Singleton getInstance(){return instance;}
}

3)适用性
Singleton 模式适用于:

  • 当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。
  • 当这个唯一实例应该是通过子类化可扩展的,并且客户无须更改代码就能使用一个扩展的实例时。

😄总结

经过对各种创建型设计模式的深入探讨和代码实例展示,我们可以更加深入地理解它们如何帮助我们更有效地创建对象。从简单工厂到单例模式,每一种设计模式都有其独特的应用场景和优势。当面对软件设计中的具体问题时,了解如何选择和应用合适的设计模式至关重要。希望本文的内容能为您提供有关设计模式的深入了解,以及如何在实际开发中灵活运用这些模式的启示。

😁热门专栏推荐
想学习vue的可以看看这个

java基础合集

数据库合集

redis合集

nginx合集

linux合集

手写机制

微服务组件

spring_尘觉

springMVC

mybits

等等等还有许多优秀的合集在主页等着大家的光顾感谢大家的支持

🤔欢迎大家加入我的社区 尘觉社区

文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起来评论区一起讨论😁
希望能和诸佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞

http://www.hkea.cn/news/228452/

相关文章:

  • 网站建设的关键seo推广小分享
  • 写小说的小网站百度关键词排名优化
  • 制作网站的成本规划公司如何建立网站
  • html语言做网站石嘴山网站seo
  • 做最好的言情网站官网seo优化
  • 云南建设监理协会网站营销失败案例分析
  • 怎么样做淘宝优惠券网站搜索引擎营销的优缺点
  • wordpress动态订单seo社区
  • 网站域没到期不能续费吗google谷歌搜索
  • 厦门好的做网站公司网络营销推广方式都有哪些
  • 重庆市建设工程信息官网站自己做网站的流程
  • 网站建设公司怎么做网络营销网站推广
  • 360应用商店seo服务套餐
  • 废橡胶网站建设个人博客网页设计
  • 什么网站做一手项目好域名查询官网
  • 做日用品的要找什么网站好站长工具端口检测
  • 贵州软件开发 网站开发手机版百度一下
  • 企业网站建立答辩问题百度怎么发布广告
  • 温州快建网站地推拉新接单网
  • 濉溪县城乡建设委员会燃气办网站热狗网站排名优化外包
  • 网站能不能自己做免费的seo教程
  • 湖南的商城网站建设优化教程网下载
  • 做网站需要哪些工程师西安seo诊断
  • tp做的网站封装成app2023北京封控了
  • 增城做网站要多少钱推广普通话手抄报
  • 石家庄网站系统开发智能搜索引擎
  • 迅速网站网络营销平台推广方案
  • 学前端要逛那些网站微信引流主动被加软件
  • 韩国flash网站免费手机网站建站平台
  • 东莞做网站卓诚网络昆明长尾词seo怎么优化