<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[DSDS454651的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/DSDS454651</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; DSDS454651]]></copyright><item><title><![CDATA[000.JAVA BIO编程]]></title><link>https://blog.youkuaiyun.com/DSDS454651/article/details/141603726</link><guid>https://blog.youkuaiyun.com/DSDS454651/article/details/141603726</guid><author>DSDS454651</author><pubDate>Tue, 27 Aug 2024 15:13:52 +0800</pubDate><description><![CDATA[JAVA BIO:同步并阻塞（传统阻塞型），服务器实现模式为一个连接分配一个线程，即客户端有连接请求时服务器端就需要启动一个线程进行处理如果这个连接不做任何事情就会导致比必要的线程开销。因此，当连接数量达到上限时，如果再有用户请求连接，直接会导致资源瓶颈，严重的可能会直接导致服务器崩溃。大多数情况下为了避免上述问题，都采用了线程池模型，也就是创建一个大小固定的线程池，如果有客户请求，就从线程池中获取一个空闲的线程来处理。当客户端处理完操作后，就会释放对线程的占用。]]></description><category></category></item><item><title><![CDATA[设计模式之装饰器模式]]></title><link>https://blog.youkuaiyun.com/DSDS454651/article/details/138532443</link><guid>https://blog.youkuaiyun.com/DSDS454651/article/details/138532443</guid><author>DSDS454651</author><pubDate>Tue, 07 May 2024 14:57:42 +0800</pubDate><description><![CDATA[动态（组合）地给一个对象增加一些额外的职责。就增加功能而言，Decorator模式比生成子类（继承）更为灵活（消除重复代码 & 减少子类个数）。通过采用组合而非继承的手法， Decorator模式实现了在运行时 动态扩展对象功能的能力，而且可以根据需要扩展多个功能。避免 了使用继承带来的“灵活性差”和“多子类衍生问题”。Decorator类在接口上表现为is-a Component的继承关系，即 Decorator类继承了Component类所具有的接口。]]></description><category></category></item><item><title><![CDATA[设计模式之策略模式]]></title><link>https://blog.youkuaiyun.com/DSDS454651/article/details/138316679</link><guid>https://blog.youkuaiyun.com/DSDS454651/article/details/138316679</guid><author>DSDS454651</author><pubDate>Mon, 29 Apr 2024 16:12:21 +0800</pubDate><description><![CDATA[定义一系列算法，把它们一个个封装起来，并且使它们可互相替换（变化）。该模式使得算法可独立于使用它的客户程序(稳定)而变化（扩展，子类化）。Strategy及其子类为组件提供了一系列可重用的算法，从而可以使得类型在运行时方便地根据需要在各个算法之间进行切换。Strategy模式提供了用条件判断语句以外的另一种选择，消除条件判断语句，就是在解耦合。含有许多条件判断语句的代码通常都需要Strategy模式。如果Strategy对象没有实例变量，那么各个上下文可以共享同一个。]]></description><category></category></item><item><title><![CDATA[设计模式之模板方法]]></title><link>https://blog.youkuaiyun.com/DSDS454651/article/details/138301363</link><guid>https://blog.youkuaiyun.com/DSDS454651/article/details/138301363</guid><author>DSDS454651</author><pubDate>Mon, 29 Apr 2024 09:16:51 +0800</pubDate><description><![CDATA[Template Method模式是一种非常基础性的设计模式，在面向对象系统中有着大量的应用。它用最简洁的机制（虚函数的多态性）为很多应用程序框架提供了灵活的扩展点，是代码复用方面的基本实现结构。虚函数的多态性：虚函数的多态性可以理解为一种机制，通过该机制，程序在运行时能够基于对象的实际类型来选择调用哪个函数版本，而不是在编译时确定Java中的虚函数允许子类重写（Override）继承自父类的方法，从而实现多态性（polymorphism）]]></description><category></category></item><item><title><![CDATA[设计模式之创建型模式总结]]></title><link>https://blog.youkuaiyun.com/DSDS454651/article/details/138188851</link><guid>https://blog.youkuaiyun.com/DSDS454651/article/details/138188851</guid><author>DSDS454651</author><pubDate>Thu, 25 Apr 2024 14:36:38 +0800</pubDate><description><![CDATA[定义一个用于创建对象的接口，让子类决定实例化哪一个类。工厂方法模式使得一个类的实例化延迟（目的：解耦）到子类。提供一个创建一系列相关或相互依赖对象的接口，而无需指定它们具体的类使用原型实例指定创建对象的种类，然后通过拷贝这些原型来对象。将一个复杂对象的构建与其表示相分离，使得同样的构建过程（稳定）可以创建不同的表示（变化）值对象模式一种在面向对象编程中常见的设计模式，它主要用于封装一组值，使其可以通过值进行比较来判断两个对象是否是同一个对象。而不是通过引用来判断。]]></description><category></category></item><item><title><![CDATA[设计模式之值对象模式]]></title><link>https://blog.youkuaiyun.com/DSDS454651/article/details/138188808</link><guid>https://blog.youkuaiyun.com/DSDS454651/article/details/138188808</guid><author>DSDS454651</author><pubDate>Thu, 25 Apr 2024 14:35:21 +0800</pubDate><description><![CDATA[值对象模式一种在面向对象编程中常见的设计模式，它主要用于封装一组值，使其可以通过值进行比较来判断两个对象是否是同一个对象。而不是通过引用来判断。]]></description><category></category></item><item><title><![CDATA[设计模式之原型设计模式]]></title><link>https://blog.youkuaiyun.com/DSDS454651/article/details/138188481</link><guid>https://blog.youkuaiyun.com/DSDS454651/article/details/138188481</guid><author>DSDS454651</author><pubDate>Thu, 25 Apr 2024 14:26:46 +0800</pubDate><description><![CDATA[Prototype 模式同样用于隔离类对象的使用者和具体类型（易变类）之间的耦合关系，它同样要求这些“易变类”拥有“稳定的接口”Prototype 模式对于“如何创建易变类的实体对象”采用“原型克隆”的方法来做，使得我们可以非常灵活地动态创建“拥有某些稳定接口”的新对象 — 所需工作仅仅是注册一个新类的对象（即原型），然后在任何需要的地方 clonePrototype 模式中的 clone 方法可以利用某些框架中的序列化来实现深拷贝。]]></description><category></category></item><item><title><![CDATA[设计模式之分步构建模式]]></title><link>https://blog.youkuaiyun.com/DSDS454651/article/details/138187512</link><guid>https://blog.youkuaiyun.com/DSDS454651/article/details/138187512</guid><author>DSDS454651</author><pubDate>Thu, 25 Apr 2024 14:05:39 +0800</pubDate><description><![CDATA[（分步构建模式）是一种创建型设计模式，它是链式建造者模式的进一步扩展，能够按步骤实例化对象通过分离稳定部分和变化部分，分步构建模式提供了一种灵活的方式来构建复杂对象。稳定部分保证了构建过程的稳定性和一致性，而变化部分则允许用户根据具体需求来定制构建过程。这种分离使得代码更加清晰、可维护和可扩展。]]></description><category></category></item><item><title><![CDATA[设计模式之建造者模式]]></title><link>https://blog.youkuaiyun.com/DSDS454651/article/details/138187462</link><guid>https://blog.youkuaiyun.com/DSDS454651/article/details/138187462</guid><author>DSDS454651</author><pubDate>Thu, 25 Apr 2024 13:55:55 +0800</pubDate><description><![CDATA[Builder模式主要用于"分布构建一个复杂的对象",在这其中"分步骤"是一个稳定的算法,而复杂对象的各个部分则经常变化。变化点在哪里，封装哪里；Builder模式主要在于应对"复杂对象各个部分"的频繁需求变动。其缺点在于难以应对"分步骤构建算法"的需求变动。]]></description><category></category></item><item><title><![CDATA[设计模式之依赖注入模式]]></title><link>https://blog.youkuaiyun.com/DSDS454651/article/details/138183962</link><guid>https://blog.youkuaiyun.com/DSDS454651/article/details/138183962</guid><author>DSDS454651</author><pubDate>Thu, 25 Apr 2024 11:20:11 +0800</pubDate><description><![CDATA[依赖注入是一种软件设计模式，其中一个或多个依赖项（或服务）被注入或通过引用传递到一个依赖对象（或客户端）中，并成为客户端状态的一部分。该模式将客户的依赖关系的创建与其自身的行为分开，这使程序设计可以松散耦合，并遵循控制反转和单一职责原则。]]></description><category></category></item><item><title><![CDATA[设计模式之抽象工厂模式]]></title><link>https://blog.youkuaiyun.com/DSDS454651/article/details/138181709</link><guid>https://blog.youkuaiyun.com/DSDS454651/article/details/138181709</guid><author>DSDS454651</author><pubDate>Thu, 25 Apr 2024 10:26:40 +0800</pubDate><description><![CDATA[提供一个创建一系列相关或相互依赖对象的接口，而无需指定它们具体的类如果没有应对"多系列对象构建"的需求的变化，则没有必要使用抽象工厂模式，这时候使用简单工厂完全可以"系列对象"指的是在某一特定系列下的对象之间有相互依赖、或作用的关系。不同系列的对象之间不能相互依赖抽象工厂模式主要在于应对"新系列"的需求变动。其缺点在于难以应对"新对象"的需求变动。]]></description><category></category></item><item><title><![CDATA[设计模式之工厂套件模式]]></title><link>https://blog.youkuaiyun.com/DSDS454651/article/details/138179119</link><guid>https://blog.youkuaiyun.com/DSDS454651/article/details/138179119</guid><author>DSDS454651</author><pubDate>Thu, 25 Apr 2024 09:54:34 +0800</pubDate><description><![CDATA[工厂套件模式定义是：提供一个创建一系列相关或相互依赖对象的接口，而无须指定它们具体的类。]]></description><category></category></item><item><title><![CDATA[设计模式之工厂方法]]></title><link>https://blog.youkuaiyun.com/DSDS454651/article/details/137973768</link><guid>https://blog.youkuaiyun.com/DSDS454651/article/details/137973768</guid><author>DSDS454651</author><pubDate>Fri, 19 Apr 2024 18:14:32 +0800</pubDate><description><![CDATA[定义一个用于创建对象的接口，让子类决定实例化哪一个类。]]></description><category></category></item><item><title><![CDATA[设计模式之简单工厂]]></title><link>https://blog.youkuaiyun.com/DSDS454651/article/details/137973736</link><guid>https://blog.youkuaiyun.com/DSDS454651/article/details/137973736</guid><author>DSDS454651</author><pubDate>Fri, 19 Apr 2024 18:12:59 +0800</pubDate><description><![CDATA[提供一个创建对象实例的功能，而无须关心具体实现。被创建的实例的可以是接口、抽象类、也可以是具体的类。]]></description><category></category></item><item><title><![CDATA[设计模式之转换器模式]]></title><link>https://blog.youkuaiyun.com/DSDS454651/article/details/137973681</link><guid>https://blog.youkuaiyun.com/DSDS454651/article/details/137973681</guid><author>DSDS454651</author><pubDate>Fri, 19 Apr 2024 18:10:24 +0800</pubDate><description><![CDATA[转换器模式的目的是提供相应类型之间双向转换的通用方法，允许进行干净的实现，而类型之间无需相互了解。此外，Converter模式引入了双向集合映射，从而将样板代码减少到最少。]]></description><category></category></item><item><title><![CDATA[设计模式之单例模式]]></title><link>https://blog.youkuaiyun.com/DSDS454651/article/details/137973629</link><guid>https://blog.youkuaiyun.com/DSDS454651/article/details/137973629</guid><author>DSDS454651</author><pubDate>Fri, 19 Apr 2024 18:08:54 +0800</pubDate><description><![CDATA[确保一个类只有一个实例，并为其提供一个全局的访问点。]]></description><category></category></item><item><title><![CDATA[06.消除过期的对象引用]]></title><link>https://blog.youkuaiyun.com/DSDS454651/article/details/137277960</link><guid>https://blog.youkuaiyun.com/DSDS454651/article/details/137277960</guid><author>DSDS454651</author><pubDate>Tue, 02 Apr 2024 17:24:04 +0800</pubDate><description><![CDATA[当程序员第一次被类似这样的问题困扰的时候，它们往往会过分小心：对于每一个对象的引用，一旦程序不再用到它，就把它清空。其实这样做即没必要，也不是我们所期望的，因为这样做会把程序代码弄得很乱。清空对象引用应该是一种例外，而不是一种规范行为。消除过期引用最好的方法是让包含该引用的变量结束其生命周期。如果你是在最紧凑的作用域范围内定义每一个变量(第57项)，这种情形就会自然而然地发生。那么，何时应该清空引用呢？Stack类的哪方面特性使它易于遭受内存泄漏的影响呢？简而言之，问题在于，]]></description><category></category></item><item><title><![CDATA[05.避免创建不必要的对象]]></title><link>https://blog.youkuaiyun.com/DSDS454651/article/details/137277908</link><guid>https://blog.youkuaiyun.com/DSDS454651/article/details/137277908</guid><author>DSDS454651</author><pubDate>Tue, 02 Apr 2024 17:23:24 +0800</pubDate><description><![CDATA[不要错误地认为本项所介绍的内容暗示着“创建对象的代价非常昂贵，我们就应该尽可能地避免创建对象”。相反，由于小对象的构造器只做很少量的显示工作，所以，小对象的创建和回收动作是非常廉价的，特别是在现代的JVM实现上更是如此。通过创建附加的对象，提升程序的清晰性、简洁性和功能性，这通常是件好事。]]></description><category></category></item><item><title><![CDATA[04.优先考虑依赖注入来引用资源]]></title><link>https://blog.youkuaiyun.com/DSDS454651/article/details/137277844</link><guid>https://blog.youkuaiyun.com/DSDS454651/article/details/137277844</guid><author>DSDS454651</author><pubDate>Tue, 02 Apr 2024 17:22:42 +0800</pubDate><description><![CDATA[总而言之，不要用Singleton和静态工具类来实现依赖一个或多个底层资源的类，且该资源的行为会影响到该类的行为，也不要用这个类来创建这些资源。而应该将这些资源或者工厂传给构造器（或者静态工厂或者构建器），通过它们来创建类，这个实践就被称为依赖注入，它极大提升了类的灵活性、可重用性和可测试性。]]></description><category></category></item><item><title><![CDATA[03.通过私有构造器强化不可实例化的能力]]></title><link>https://blog.youkuaiyun.com/DSDS454651/article/details/137277769</link><guid>https://blog.youkuaiyun.com/DSDS454651/article/details/137277769</guid><author>DSDS454651</author><pubDate>Tue, 02 Apr 2024 17:21:53 +0800</pubDate><description><![CDATA[有时可能我们在开发的过程中需要编写静态方法和静态域的类，这些类不希望被实例化，因为实例化对它没有任何意义。那么我们该如何去做呢？这种类无法子类化，因为所有的构造器必须显式或隐式地调用超类构造器，这种情况下，子类无法访问的超类构造器。我们可以通过私有构造器方法，控制实例化能力，]]></description><category></category></item></channel></rss>