惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
AWS News Blog
AWS News Blog
V
Vulnerabilities – Threatpost
D
Darknet – Hacking Tools, Hacker News & Cyber Security
量子位
博客园 - 叶小钗
AI
AI
T
Tor Project blog
Forbes - Security
Forbes - Security
W
WeLiveSecurity
博客园_首页
爱范儿
爱范儿
J
Java Code Geeks
B
Blog
G
GRAHAM CLULEY
aimingoo的专栏
aimingoo的专栏
Cloudbric
Cloudbric
C
CXSECURITY Database RSS Feed - CXSecurity.com
TaoSecurity Blog
TaoSecurity Blog
L
LINUX DO - 热门话题
阮一峰的网络日志
阮一峰的网络日志
有赞技术团队
有赞技术团队
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Simon Willison's Weblog
Simon Willison's Weblog
云风的 BLOG
云风的 BLOG
Google DeepMind News
Google DeepMind News
H
Help Net Security
博客园 - 三生石上(FineUI控件)
C
Cisco Blogs
C
Cybersecurity and Infrastructure Security Agency CISA
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
P
Palo Alto Networks Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Recent Commits to openclaw:main
Recent Commits to openclaw:main
博客园 - 司徒正美
The Last Watchdog
The Last Watchdog
Blog — PlanetScale
Blog — PlanetScale
T
The Blog of Author Tim Ferriss
S
Secure Thoughts
Spread Privacy
Spread Privacy
F
Fortinet All Blogs
月光博客
月光博客
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
H
Hackread – Cybersecurity News, Data Breaches, AI and More
A
About on SuperTechFans
Security Latest
Security Latest
Webroot Blog
Webroot Blog
Scott Helme
Scott Helme
Hugging Face - Blog
Hugging Face - Blog

博客园 - ®Geovin Du Dream Park™

go: Functional Options Pattern go:Timing Functions Pattern python: Timing Functions Pattern go: Steady-State Pattern python: Steady-State Pattern go: Handshaking Pattern go: Fail-Fast Pattern python: Fail-Fast Pattern I go: Deadline Pattern python: Deadline Pattern go: Circuit-Breaker Pattern python: Circuit-Breaker Pattern go: Bulkheads Pattern python: Bulkheads Pattern go: Push & Pull Pattern python: Push & Pull Pattern python: Publish/Subscribe Pattern II go: Publish/Subscribe Pattern python: Publish/Subscribe Pattern go: Futures & Promises Pattern python: Futures & Promises Pattern go: Worker Pool Pattern go:Pipeline Pattern python: Worker Pool Pattern python: Pipeline Pattern go: Fan-Out Pattern python: Fan-Out Pattern go: Fan-In Pattern python: Fan-In Pattern Fan-In go: Producer Consumer  Pattern python: Producer Consumer Pattern go: Parallelism Pattern python: Parallelism Pattern go: Reactor Pattern python: Reactor Pattern go: Generators Pattern python: speech to text offline python: Generators Pattern go: Coroutines Pattern python:Coroutines Pattern go: Broadcast Pattern python: Broadcast Pattern python: Bounded Parallelism Pattern go: Bounded Parallelism Pattern python: N-Barrier Pattern go: N-Barrier Pattern python: Semaphore Pattern go: Semaphore Pattern python: Read-Write Lock Pattern go: Read-Write Lock Pattern python: Monitor Pattern go: Monitor Pattern python: Mutex Pattern go: Lock/Mutex Pattern Python: Condition Variable Pattern go:Condition Variable Pattern python: Registry Pattern python: Interpreter Pattern go: Interpreter Pattern go: Registry Pattern go: Memento Pattern go: Command Pattern go: State Pattern go:Template Method Pattern go: Strategy Pattern go: Visitor Pattern go: Observer Pattern go: Mediator Pattern go: Iterator Pattern go: Chain of Responsibility Pattern go: Proxy Pattern go:Decorator Pattern go: Facade Pattern go: Flyweight Pattern go: Composite Pattern go: Singleton Pattern go: Prototype Pattern go: Bridge Pattern go: Adapter Pattern go: Builder Pattern 密码进行加盐哈希 using CSharp,Python,Go,Java go: Abstract Factory Pattern go: Model,Interface,DAL ,Factory,BLL using mysql go: Simple Factory Pattern go: Factory Method Pattern go: goLang 在Windows环境搭建Go语言开发环境 CSharp: Parallel Extensions cpp: class python: 蝴蝶跟随鼠标 javascript: 中国历史人物热力分布图using echart javascript: 中国历史人物热力图 python: 初养龙虾微信纯文字自动回复using workBuddy python: object 入门 python: Factory Method Pattern python: Simple Factory Pattern python: Abstract Factory Pattern 区域化 代码 python: Null Object Pattern python: Builder Pattern python: Adapter Pattern
python: Handshaking Pattern
®Geovin Du Dream Park™ · 2026-07-01 · via 博客园 - ®Geovin Du Dream Park™

项目结构:

811841f03500fb5346df0b9af3c0ac50

# encoding: utf-8 
# 版权所有  2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Handshaking Pattern 握手模式
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : PyCharm 2024.3.6 python 3.11
# os        : windows 10
# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j
# Datetime  : 2026/7/1 20:52 
# User      :  geovindu
# Product   : PyCharm
# Project   : pydesginpattern
# File      : settings.py
"""全局配置:企业级统一管理"""
class Settings:
    """

    """

    # 工坊最大负载(握手模式阈值)
    WORKSHOP_MAX_LOAD = 5
    # 日志配置
    LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"
    LOG_DATE_FORMAT = "%Y-%m-%d %H:%M:%S"

settings = Settings()



# encoding: utf-8 
# 版权所有  2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Handshaking Pattern 握手模式
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : PyCharm 2024.3.6 python 3.11
# os        : windows 10
# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j
# Datetime  : 2026/7/1 20:53 
# User      :  geovindu
# Product   : PyCharm
# Project   : pydesginpattern
# File      : jewelry_enums.py
"""珠宝枚举:可扩展、类型安全"""
from enum import Enum

class JewelryType(Enum):
    """

    """
    DIAMOND_RING = "钻戒"
    GOLD_BRACELET = "黄金手镯"
    JADE_PENDANT = "翡翠吊坠"
    RUBY_NECKLACE = "红宝石项链"
    PLATINUM_RING = "铂金戒指"
    SAPPHIRE_EARRING = "蓝宝石耳环"
    PEARL_NECKLACE = "珍珠项链"

class OrderStatus(Enum):
    """

    """

    IN_PROGRESS = "生产中"
    COMPLETED = "已完成"
    REJECTED = "已拒绝"



# encoding: utf-8 
# 版权所有  2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Handshaking Pattern 握手模式
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : PyCharm 2024.3.6 python 3.11
# os        : windows 10
# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j
# Datetime  : 2026/7/1 20:53 
# User      :  geovindu
# Product   : PyCharm
# Project   : pydesginpattern
# File      : business_exceptions.py
"""业务异常:企业级统一异常体系"""
class WorkshopOverloadException(Exception):
    """
    工坊过载异常(握手模式核心)
    """
    pass

class OrderNotFoundException(Exception):
    """
    订单不存在
    """
    pass


# encoding: utf-8 
# 版权所有  2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Handshaking Pattern 握手模式
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : PyCharm 2024.3.6 python 3.11
# os        : windows 10
# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j
# Datetime  : 2026/7/1 20:54 
# User      :  geovindu
# Product   : PyCharm
# Project   : pydesginpattern
# File      : logger.py
"""基础设施:日志服务"""
import logging
from HandshakingPattern.config.settings import settings

class AppLogger:
    """

    """

    def __init__(self):
        logging.basicConfig(
            format=settings.LOG_FORMAT,
            datefmt=settings.LOG_DATE_FORMAT,
            level=logging.INFO
        )
        self.logger = logging.getLogger("jewelry_system")

    def info(self, msg: str):
        self.logger.info(msg)

    def error(self, msg: str):
        self.logger.error(msg)

logger = AppLogger()


# encoding: utf-8 
# 版权所有  2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Handshaking Pattern 握手模式
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : PyCharm 2024.3.6 python 3.11
# os        : windows 10
# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j
# Datetime  : 2026/7/1 20:55 
# User      :  geovindu
# Product   : PyCharm
# Project   : pydesginpattern
# File      : workshop.py
"""领域层:珠宝工坊(握手模式实现)"""
from dataclasses import dataclass
from typing import List
from HandshakingPattern.config.settings import settings
from HandshakingPattern.enums.jewelry_enums import JewelryType, OrderStatus
from HandshakingPattern.exceptions.business_exceptions import WorkshopOverloadException,OrderNotFoundException

@dataclass
class Order:
    """
    订单实体
    """
    order_id: str
    jewelry_type: JewelryType
    customer: str
    status: OrderStatus

class JewelryWorkshop:
    def __init__(self):
        self.max_load = settings.WORKSHOP_MAX_LOAD
        self.current_orders: List[Order] = []

    def handshake(self) -> bool:
        """
        握手模式核心方法
        负载检查:返回是否可接受新订单
        """
        return len(self.current_orders) < self.max_load

    def accept_order(self, order: Order) -> None:
        """接受订单:必须先握手"""
        if not self.handshake():
            raise WorkshopOverloadException(
                f"工坊已满负荷 {len(self.current_orders)}/{self.max_load}"
            )
        self.current_orders.append(order)

    def complete_order(self, order_id: str) -> Order:
        """完成订单,释放负载"""
        for order in self.current_orders:
            if order.order_id == order_id:
                order.status = OrderStatus.COMPLETED
                self.current_orders.remove(order)
                return order
        raise OrderNotFoundException(f"订单{order_id}不存在")

    def get_status(self):
        return {
            "max_load": self.max_load,
            "current_load": len(self.current_orders),
            "orders": [o.__dict__ for o in self.current_orders]
        }



# encoding: utf-8 
# 版权所有  2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Handshaking Pattern 握手模式
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : PyCharm 2024.3.6 python 3.11
# os        : windows 10
# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j
# Datetime  : 2026/7/1 20:57 
# User      :  geovindu
# Product   : PyCharm
# Project   : pydesginpattern
# File      : order_service.py
"""应用层:订单服务(编排业务,不实现核心逻辑)"""
from HandshakingPattern.domain.workshop import JewelryWorkshop, Order
from HandshakingPattern.enums.jewelry_enums import OrderStatus
from HandshakingPattern.infrastructure.logger import logger

class OrderService:
    """

    """

    def __init__(self, workshop: JewelryWorkshop):
        self.workshop = workshop

    def create_order(self, order_id: str, jewelry_type, customer: str) -> str:
        """

        :param order_id:
        :param jewelry_type:
        :param customer:
        :return:
        """
        try:
            order = Order(
                order_id=order_id,
                jewelry_type=jewelry_type,
                customer=customer,
                status=OrderStatus.IN_PROGRESS
            )
            self.workshop.accept_order(order)
            msg = f"✅ 订单{order_id} 接受成功 | 客户:{customer} | 品类:{jewelry_type.value}"
            logger.info(msg)
            return msg
        except Exception as e:
            msg = f"❌ 订单{order_id} 被拒绝:{str(e)}"
            logger.error(msg)
            return msg

    def finish_order(self, order_id: str) -> str:
        """

        :param order_id:
        :return:
        """
        try:
            order = self.workshop.complete_order(order_id)
            msg = f"🏆 订单{order_id} 已完成 | 客户:{order.customer}"
            logger.info(msg)
            return msg
        except Exception as e:
            logger.error(str(e))
            return str(e)



# encoding: utf-8 
# 版权所有  2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:Handshaking Pattern 握手模式
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : PyCharm 2024.3.6 python 3.11
# os        : windows 10
# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j
# Datetime  : 2026/7/1 20:59 
# User      :  geovindu
# Product   : PyCharm
# Project   : pydesginpattern
# File      : workshop_api.py
"""接口层:对外提供服务入口"""
from HandshakingPattern.application.order_service import OrderService
from HandshakingPattern.domain.workshop import JewelryWorkshop

class WorkshopAPI:
    """

    """
    def __init__(self):
        # 依赖注入
        self.workshop = JewelryWorkshop()
        self.order_service = OrderService(self.workshop)

    def submit_order(self, order_id, jewelry_type, customer):
        """

        :param order_id:
        :param jewelry_type:
        :param customer:
        :return:
        """
        return self.order_service.create_order(order_id, jewelry_type, customer)

    def complete_order(self, order_id):
        """

        :param order_id:
        :return:
        """
        return self.order_service.finish_order(order_id)

    def get_workshop_status(self):
        """

        :return:
        """
        return self.workshop.get_status()

调用:

# encoding: utf-8 
# 版权所有  2026 ©涂聚文有限公司™ ®
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : PyCharm 2024.3.6 python 3.11
# os        : windows 10
# database  : mysql 9.0 sql server 2019, postgreSQL 17.0  Oracle 21c Neo4j
# Datetime  : 2026/7/1 21:01 
# User      :  geovindu
# Product   : PyCharm
# Project   : pydesginpattern
# File      : HandshakingBll.py
from HandshakingPattern.api.workshop_api import WorkshopAPI
from HandshakingPattern.enums.jewelry_enums import JewelryType


class HandshakingBll(object):
    """

    """
    def demo(self):
        """

        :return:
        """
        print("===== 珠宝企业级系统启动(握手模式)=====\n")
        api = WorkshopAPI()

        # 模拟订单
        orders = [
            ("ORD001", JewelryType.DIAMOND_RING, "张先生"),
            ("ORD002", JewelryType.GOLD_BRACELET, "李女士"),
            ("ORD003", JewelryType.JADE_PENDANT, "王小姐"),
            ("ORD004", JewelryType.RUBY_NECKLACE, "刘先生"),
            ("ORD005", JewelryType.PLATINUM_RING, "陈女士"),
            ("ORD006", JewelryType.SAPPHIRE_EARRING, "赵先生"),
            ("ORD007", JewelryType.PEARL_NECKLACE, "孙女士"),
        ]

        print("----- 接收客户订单 -----")
        for oid, jt, cust in orders:
            print(api.submit_order(oid, jt, cust))

        print("\n----- 完成2个订单 -----")
        print(api.complete_order("ORD001"))
        print(api.complete_order("ORD002"))

        print("\n----- 重新接收被拒订单 -----")
        print(api.submit_order("ORD006", JewelryType.SAPPHIRE_EARRING, "赵先生"))
        print(api.submit_order("ORD007", JewelryType.PEARL_NECKLACE, "孙女士"))

        print("\n----- 最终工坊状态 -----")
        print(api.get_workshop_status())

输出:

357bc140abdee1beb75cfba505e143ef

哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)生存.---Geovin Du(涂聚文)