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

网站后台上传图片 不可用国家信用企业信息系统

网站后台上传图片 不可用,国家信用企业信息系统,做辅食网站,建设一个视频网站己18设计模式选择理由: 抽象工厂模式: 抽象工厂模式适合于创建一组相关或依赖对象的场景。在这里,我们可以定义一个抽象工厂来创建不同类型(数字、字母、特殊符号)的随机数据生成器。 策略模式: 策略模式允许你…

设计模式选择理由:

  1. 抽象工厂模式

    • 抽象工厂模式适合于创建一组相关或依赖对象的场景。在这里,我们可以定义一个抽象工厂来创建不同类型(数字、字母、特殊符号)的随机数据生成器。
  2. 策略模式

    • 策略模式允许你定义一系列算法,并将每个算法封装起来,使它们可以互相替换。在这里,我们可以使用策略模式来定义不同类型数据的生成算法,例如数字生成策略、字母生成策略、特殊符号生成策略。

示例实现:

下面是一个简单的Python示例,结合抽象工厂模式和策略模式,用于生成随机数

import random
import string
from abc import ABC, abstractmethod
import numpy as np
import random# 抽象工厂:数据生成器工厂
class DataGeneratorFactory:def create_generator(self):pass# 具体工厂1:数字数据生成器工厂
class NumberGeneratorFactory(DataGeneratorFactory):def create_generator(self):return NumberGenerator()# 具体工厂2:字母数据生成器工厂
class LetterGeneratorFactory(DataGeneratorFactory):def create_generator(self):return LetterGenerator()# 具体工厂3:特殊符号数据生成器工厂
class SymbolGeneratorFactory(DataGeneratorFactory):def create_generator(self):return SymbolGenerator()# 具体工厂4:字母、数字、特殊符号数据生成器工厂
class LetterNumberSymbolGeneratorFactory(DataGeneratorFactory):def create_generator(self):return LetterNumberSymbolGenerator()# 具体工厂5:指定特殊符号数据生成器工厂
class SymbolAGeneratorFactory(DataGeneratorFactory):def create_generator(self):return SymbolAGenerator()# 抽象产品:数据生成器接口
class DataGenerator:def generate_data(self, length):pass# 具体产品1:数字数据生成器
class NumberGenerator(DataGenerator):def generate_data(self, length):my_list = [random.randint(0, 9) for _ in range(length)]result = int(''.join(map(str, my_list)))return result# 具体产品2:字母数据生成器
class LetterGenerator(DataGenerator):def generate_data(self, length):my_list = [random.choice(string.ascii_letters) for _ in range(length)]result = ''.join(my_list)return result# 具体产品3:特殊符号数据生成器
class SymbolGenerator(DataGenerator):def generate_data(self, length):symbols = string.punctuationmy_list = [random.choice(symbols) for _ in range(length)]result = ''.join(my_list)return result# 具体产品4:字母、数字、特殊符号数据生成器
class LetterNumberSymbolGenerator(DataGenerator):def generate_data(self, length):symbols = string.ascii_letters + string.digits + string.punctuation  # 随机字母+随机数字+随机特殊符号my_list = [random.choice(symbols) for _ in range(length)]result = ''.join(my_list)return result# 具体产品5:指定特殊符号数据生成器
class SymbolAGenerator(DataGenerator):def generate_data(self, length):symbols = "!@#$%^&*()_+-=[]{}|;:,.<>/?"my_list = [random.choice(symbols) for _ in range(length)]result = ''.join(my_list)return result# 客户端代码
def generate_random_array(factory, length):generator = factory.create_generator()return generator.generate_data(length)class RandomStrategy(ABC):# 抽象类:强制子类实现此方法@abstractmethoddef fun_random(self, seed=None):passclass PortRandomStrategy(RandomStrategy):def fun_random(self, seed=None):random.seed(seed)port = random.randint(0, 65535)return portclass IPRandomStrategy(RandomStrategy):def fun_random(self, seed=None):random.seed(seed)ip = ".".join(str(random.randint(0, 255)) for _ in range(4))return ipclass SeqRandomStrategy(RandomStrategy):def fun_random(self, seed=None):random.seed(seed)seqRand = random.randint(0, (2**32) - 1)return seqRandfactories = [NumberGeneratorFactory(), LetterGeneratorFactory(), SymbolGeneratorFactory(),LetterNumberSymbolGeneratorFactory(),SymbolAGeneratorFactory()]
for factory in factories:random_data = generate_random_array(factory, 10)print(random_data)portRandom = PortRandomStrategy().fun_random()
portRandomSeed = PortRandomStrategy().fun_random(3)
ipRandom = IPRandomStrategy().fun_random()
ipRandomSeed = IPRandomStrategy().fun_random(3)
seqRandom = SeqRandomStrategy().fun_random()
seqRandomSeed = SeqRandomStrategy().fun_random(3)print(portRandom,portRandomSeed)
print(ipRandom, ipRandomSeed)
print(seqRandom, seqRandomSeed)

1373322424
LgVdMdRGjV
`\~_+-/}>$
XH.Q%<L\4t
>^;)!..-&]
59444 31190
172.42.130.11 121.66.189.242
4152488277 2337446730

  • 抽象工厂和具体工厂DataGeneratorFactory是抽象工厂,定义了创建数据生成器的接口。

  • 抽象产品和具体产品DataGenerator是抽象产品接口,定义了生成数据的方法;实现了具体的生成算法。

  • 客户端代码generate_random_array函数接受一个工厂对象和长度作为参数,通过工厂创建对应类型的数据生成器,并生成随机数组。

此设计可以扩展和修改不同类型数据的生成方式,保持代码结构清晰和可维护性高。

使用抽象工厂和策略模式的组合,使代码符合开闭原则,即对扩展开放、对修改关闭。

http://www.yayakq.cn/news/946364/

相关文章:

  • 青海省建设局网站wordpress for android
  • 广州市建设注册中心网站免费建立自己的网站
  • 长沙 网站开发中国建设银行企业网站
  • 韩城搜索引擎建设网站html技术的简介
  • 江苏大都建设工程有限公司网站厦门市建设管理协会网站首页
  • 建一个素材网站多少钱wordpress主题开发层级
  • 网站色彩搭配案例景县做网站
  • 红酒网站源码青岛自助建站软件
  • 淘宝客网站怎么做推广wordpress指定文章
  • 私人建设手机网站施工企业效能
  • 推广网站哪家做的好抖音粉丝购买网站
  • 在那个网站做付汇的延期说明商标设计网站哪个好
  • 网站内部推广网站建设搜索优化app推广新闻营销
  • 好看的网站模板全国最缺工100个职业排行榜
  • 辽宁省营商建设监督局网站thinkphp5来做网站吗
  • 林业网站源码网页设计模板怎么套用
  • 教学资源系统网站建设方案做网站卖资料
  • 网站商城设计方案做电子购物网站需要申请
  • 白城市住房建设局网站中小企业网站建设教程
  • 网站案例欣赏自己制作app软件要多少钱
  • 全部免费网站软件vi设计手册范本
  • 公司网站制作公网站对企业的好处
  • joomla功能型网站建设033340网站建设与管理
  • 网站推广软件下载如何编辑网站
  • 建站公司网站模板论坛设计理念网站
  • alexa的网站排名主要分为哪两种网站设计考虑要素
  • 杭州好的做网站公司织梦网站怎么上传视频教程
  • 网站建设用户使用手册建设银行官方网站网址
  • 建设一个网站选择的服务器wordpress微信底部导航菜单
  • 怎样做买东西的网站网站收录查询方法