<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ThereIsNoCode]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ThereIsNoCode</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ThereIsNoCode]]></copyright><item><title><![CDATA[一文说明不同IO多路复用 select、poll、epoll 和 kqueue ？不信你还看不懂！]]></title><link>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/146872400</link><guid>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/146872400</guid><author>ThereIsNoCode</author><pubDate>Mon, 31 Mar 2025 17:27:21 +0800</pubDate><description><![CDATA[一文说明不同IO多路复用 select、poll、epoll 和 kqueue ？不信你还看不懂！]]></description><category></category></item><item><title><![CDATA[什么是IO多路复用（I/O Multiplexing）]]></title><link>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/146871758</link><guid>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/146871758</guid><author>ThereIsNoCode</author><pubDate>Mon, 31 Mar 2025 17:19:53 +0800</pubDate><description><![CDATA[IO多路复用是用同步的方式实现异步的效果，本质仍是同步IO（需主动读取数据），但通过内核事件通知机制大幅提升效率。]]></description><category></category></item><item><title><![CDATA[什么是IO?有哪些IO类型与模式？]]></title><link>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/146871449</link><guid>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/146871449</guid><author>ThereIsNoCode</author><pubDate>Mon, 31 Mar 2025 17:17:07 +0800</pubDate><description><![CDATA[IO是计算机与外界沟通的桥梁，理解其原理和优化方法对开发高效程序（如Web服务器、实时数据处理系统）至关重要。的核心概念，指信息从外部传入系统（Input）或从系统传出到外部（Output）的过程。]]></description><category></category></item><item><title><![CDATA[一次性看懂10种排序算法（附代码）]]></title><link>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/146147410</link><guid>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/146147410</guid><author>ThereIsNoCode</author><pubDate>Mon, 10 Mar 2025 10:56:19 +0800</pubDate><description><![CDATA[常见的排序算法可以根据其实现原理分为以下几类，每种算法都有其特定的应用场景和性能特点。]]></description><category></category></item><item><title><![CDATA[1000瓶酒中1瓶毒药用10只小白鼠如何找出？——用二进制思维破解「千瓶毒药」难题？]]></title><link>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145905023</link><guid>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145905023</guid><author>ThereIsNoCode</author><pubDate>Thu, 27 Feb 2025 15:15:19 +0800</pubDate><description><![CDATA[这个看似简单的谜题，实际蕴含着深刻的计算机科学原理。我们先进行初步分析：如果用最笨的"逐一试毒"法，需要999只小白鼠，显然存在巨大的优化空间。已知小白鼠服毒后会在1小时内死亡，现在给你1小时的时间，至少需要多少只小白鼠才能找出有毒的那瓶药水？每个小白鼠的生死状态都承载着1位信息（0表示存活，1表示死亡）。在真实的软件开发中，类似的思维模式可以帮助我们设计出更优雅的算法。通过这种编码方式，10只小白鼠的生死状态形成了独一无二的二进制ID，精准锁定目标。死亡小白鼠的位组合直接构成毒药的二进制编号。]]></description><category></category></item><item><title><![CDATA[深入浅出C++11新特性详解]]></title><link>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145860075</link><guid>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145860075</guid><author>ThereIsNoCode</author><pubDate>Tue, 25 Feb 2025 19:02:02 +0800</pubDate><description><![CDATA[【代码】深入浅出C++11新特性详解。]]></description><category></category></item><item><title><![CDATA[蓝桥杯2024年第十五届省赛真题-封闭图形个数]]></title><link>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145830195</link><guid>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145830195</guid><author>ThereIsNoCode</author><pubDate>Mon, 24 Feb 2025 16:35:09 +0800</pubDate><description><![CDATA[时间限制: 5s 内存限制: 512MB 提交: 1486 解决: 508。]]></description><category></category></item><item><title><![CDATA[「软件设计模式」责任链模式（Chain of Responsibility）]]></title><link>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145828505</link><guid>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145828505</guid><author>ThereIsNoCode</author><pubDate>Mon, 24 Feb 2025 14:48:06 +0800</pubDate><description><![CDATA[责任链模式（Chain of Responsibility）通过将多个处理对象连接成链，并沿着链条传递请求，直到有对象处理它为止。这种模式实现了请求发送者与接收者的解耦。责任链模式将离散的处理节点组织成灵活的执行链路，这种设计思想在C++标准库中也有体现（如异常处理栈）。掌握该模式的关键在于理解处理节点的独立性，以及如何构建高效的传递机制。当你的系统需要灵活多变的处理流程时，不妨考虑让责任链来大显身手！]]></description><category></category></item><item><title><![CDATA[「软件设计模式」命令模式（Command）]]></title><link>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145826958</link><guid>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145826958</guid><author>ThereIsNoCode</author><pubDate>Mon, 24 Feb 2025 14:07:51 +0800</pubDate><description><![CDATA[通过本文，我们不仅掌握了命令模式的理论知识，还实现了一个功能完备的智能家居控制系统。这种模式在GUI事件处理、事务系统、工作流引擎等领域都有广泛应用。下次当你需要将"请求"抽象为对象时，不妨试试这个强大的模式。想象你坐在餐厅点餐时，服务员记录你的订单交给后厨，这个看似简单的过程蕴含着软件设计的智慧。命令模式（Command）正是将这种"请求封装为对象"的思想应用于软件设计，实现调用者与执行者的完美解耦。]]></description><category></category></item><item><title><![CDATA[「软件设计模式」状态模式（State）]]></title><link>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145653786</link><guid>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145653786</guid><author>ThereIsNoCode</author><pubDate>Fri, 21 Feb 2025 10:54:57 +0800</pubDate><description><![CDATA[状态模式（State Pattern）是面向对象设计中的行为型模式，其核心思想是将对象的行为封装到独立的状态对象中，使得对象能根据内部状态的变化动态改变行为。该模式通过以下方式解耦程序逻辑：
将每个状态的行为抽象为独立类
允许对象在运行时切换状态对象
消除复杂的条件判断语句]]></description><category></category></item><item><title><![CDATA[「软件设计模式」策略模式（Strategy）]]></title><link>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145653495</link><guid>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145653495</guid><author>ThereIsNoCode</author><pubDate>Tue, 18 Feb 2025 09:00:00 +0800</pubDate><description><![CDATA[策略模式作为行为型设计模式的代表，为算法管理提供了优雅的解决方案。在现代C++开发中，结合模板、lambda表达式等新特性，策略模式展现出更强大的生命力。随着领域驱动设计（DDD）的普及，策略模式在战术模式实现中也发挥着重要作用。]]></description><category></category></item><item><title><![CDATA[「软件设计模式」观察者模式（Observer） ]]></title><link>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145651476</link><guid>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145651476</guid><author>ThereIsNoCode</author><pubDate>Mon, 17 Feb 2025 08:00:00 +0800</pubDate><description><![CDATA[通过本文的详细讲解和代码示例，读者可以深入理解观察者模式的核心思想，掌握其在C++中的实现方法。该模式在需要建立对象间动态、松耦合关系的场景中具有重要价值，合理运用可以显著提升系统的灵活性和可维护性。后续文章我们将继续探讨其他设计模式的实现与应用。观察者模式（Observer）是一种行为型设计模式，它建立了对象间的一对多依赖关系。当被观察对象（Subject）状态发生变化时，它会自动通知所有观察者（Observer）对象，形成松耦合的交互机制。]]></description><category></category></item><item><title><![CDATA[「软件设计模式」外观模式（Facade）]]></title><link>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145651259</link><guid>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145651259</guid><author>ThereIsNoCode</author><pubDate>Sun, 16 Feb 2025 08:30:00 +0800</pubDate><description><![CDATA[外观模式（）是一种结构型设计模式，其核心思想是为复杂的子系统提供一个简化的统一接口。通过定义一个高层接口，外观模式隐藏了子系统的内部复杂性，使得客户端调用更加简单直接。核心作用降低耦合：客户端不需要了解子系统的细节。简化操作：将多个子系统的操作封装成一个高层接口。提高可维护性：修改子系统内部逻辑时，不影响客户端代码。]]></description><category></category></item><item><title><![CDATA[「软件设计模式」组合模式（Composite）]]></title><link>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145650985</link><guid>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145650985</guid><author>ThereIsNoCode</author><pubDate>Sun, 16 Feb 2025 08:00:00 +0800</pubDate><description><![CDATA[组合模式通过树形结构实现对象容器与内容的解耦，在保持类型透明性的同时简化了复杂结构的操作。当系统需要处理具有递归层次结构的对象时，组合模式能显著提高代码的可维护性和扩展性。]]></description><category></category></item><item><title><![CDATA[「软件设计模式」装饰者模式（Decorator）]]></title><link>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145633945</link><guid>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145633945</guid><author>ThereIsNoCode</author><pubDate>Sat, 15 Feb 2025 14:34:46 +0800</pubDate><description><![CDATA[装饰者模式（Decorator Pattern）是一种结构型设计模式，它通过将对象放入包含行为的特殊封装对象中，动态地为原始对象添加新功能，比继承更灵活。装饰者模式通过灵活的对象组合代替僵化的类继承，为系统扩展提供了优雅的解决方案。使用unique_ptr管理组件生命周期通过抽象类保证接口一致性利用现代C++特性简化实现当面对需要动态扩展功能的场景时，装饰者模式就像编程世界的"俄罗斯套娃"，让每个装饰器层层包裹核心组件，最终组合出强大的功能集合。]]></description><category></category></item><item><title><![CDATA[「软件设计模式」桥接模式（Bridge Pattern）]]></title><link>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145633493</link><guid>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145633493</guid><author>ThereIsNoCode</author><pubDate>Sat, 15 Feb 2025 07:00:00 +0800</pubDate><description><![CDATA[桥接模式为复杂系统提供了优雅的维度解耦方案，其核心价值在于：

    分离变与不变的部分
    建立抽象与实现的动态绑定
    提升系统的可维护性和扩展性]]></description><category></category></item><item><title><![CDATA[「软件设计模式」适配器模式（Adapter）]]></title><link>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145620405</link><guid>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145620405</guid><author>ThereIsNoCode</author><pubDate>Fri, 14 Feb 2025 09:52:21 +0800</pubDate><description><![CDATA[适配器模式（Adapter Pattern）是结构型设计模式中的"接口转换器"，它像现实世界中的电源适配器一样，能够让原本接口不兼容的类协同工作。该模式通过包装对象的方式，将被适配者的接口转换为目标接口，是解决系统升级、组件复用等场景下接口不兼容问题的利器。适配器模式体现了"封装变化"的设计原则，通过中间层转换实现接口兼容。在系统演进过程中，该模式能有效降低改造风险，提高代码复用率。理解适配器模式的本质，可以帮助我们在面对接口不兼容问题时，做出更优雅的架构设计决策。]]></description><category></category></item><item><title><![CDATA[「软件设计模式」建造者模式（Builder）]]></title><link>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145616403</link><guid>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145616403</guid><author>ThereIsNoCode</author><pubDate>Fri, 14 Feb 2025 09:00:00 +0800</pubDate><description><![CDATA[建造者模式如同一位经验丰富的建筑大师，将看似混乱的构建过程转化为标准化的装配流程。在C++的世界中，通过合理运用友元类、移动语义和模板技术，我们能够打造出既高效又灵活的对象构建系统。]]></description><category></category></item><item><title><![CDATA[「软件设计模式」单例模式（Singleton）]]></title><link>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145613657</link><guid>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145613657</guid><author>ThereIsNoCode</author><pubDate>Thu, 13 Feb 2025 15:37:58 +0800</pubDate><description><![CDATA[单例模式是一种强大的设计模式，能够帮助开发者实现实例的一致性和共享性。尽管它有一些缺点，但在特定场景下，其优势仍然显著。理解并掌握单例模式将有助于你写出更高效、更可靠的代码，并且在团队协作开发中避免重复工作和资源冲突。]]></description><category></category></item><item><title><![CDATA[「软件设计模式」工厂方法模式（Factory Method） vs 抽象工厂模式（Abstract Factory）]]></title><link>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145613374</link><guid>https://blog.youkuaiyun.com/ThereIsNoCode/article/details/145613374</guid><author>ThereIsNoCode</author><pubDate>Thu, 13 Feb 2025 15:33:24 +0800</pubDate><description><![CDATA[在软件工程领域，设计模式是解决常见问题的经典方案。工厂方法模式和抽象工厂模式，通过理论解析与实战代码示例，帮助开发者掌握这两种模式的精髓。抽象工厂模式通过创建相关对象族来提升系统的扩展性，强调产品系列的概念。它比工厂方法模式更高层次的抽象。掌握工厂模式是成为架构师的重要阶梯。工厂方法模式像专业工匠，专注单一产品的精雕细琢；抽象工厂模式如生产总监，统筹协调整个产品家族。理解它们的差异，才能在系统设计中做出最合适的选择。]]></description><category></category></item></channel></rss>