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

网站写文案青岛网站设计皆挺青岛博采网络

网站写文案,青岛网站设计皆挺青岛博采网络,阿里巴巴外贸平台费用,彩票网站html模板设计模式选择理由: 抽象工厂模式: 抽象工厂模式适合于创建一组相关或依赖对象的场景。在这里,我们可以定义一个抽象工厂来创建不同类型(数字、字母、特殊符号)的随机数据生成器。 策略模式: 策略模式允许你…

设计模式选择理由:

  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/127640/

相关文章:

  • 定制网站开发广安广播电台广州网站建设费用多少
  • 乐都网站建设网站买东西第三方怎么做
  • 郑州一站式网站搭建网站开发需求报告
  • 百度网站搜索量提高东莞网站建设图表
  • 个人网站建设方案策划书重庆网站建设狐灵传媒
  • 企业品牌网站建设价格网络推广的方法和技巧可以学吗
  • 网站建设公司知乎个人网站设计源码
  • 音乐网站系统怎么做企业微信开放平台api
  • 网站建设 排行响应式官网模板
  • 营销型企业网站分析与诊断的步骤陕西专业做网站
  • 宝塔网站建设教程做不锈钢门的网站
  • 云南城市建设职业学校官方网站网站后台打开慢
  • 如何自己学建设网站脚上起小水泡很痒是什么原因
  • 深圳网站建设深圳网织梦网站模板还原的文件在哪里
  • 湖北seo网站多少钱上海做网站设计
  • 网站不备案可以做百度推广吗厦门做网页网站的公司
  • 深圳网站设计公司是什么国内做视频网站需要啥
  • 外贸多语言网站seo方案
  • 带icp备案的网站深圳网站建设大公司好
  • win8网站源码英文网站制作 官网
  • 哪些网站有搜索引擎作弊的做国际贸易做什么网站
  • 英文都不懂 学网站建设维护难吗佛山h5建站模板
  • 济南有做五合一网站公司网站模板 英文
  • ps做网站 字体多大网站建设资金预算
  • 蚌埠网站设计tp5.1做的网站
  • 买东西网站建设用手机可以建设一个手机网站吗
  • 网站建设 百度经验苏州seo服务
  • 十堰优化网站公司重庆社区官网
  • 外贸在什么网站做网页素材网站有哪些
  • 网站建设 业务培训wordpress恢复主题