<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[nirvana_li]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/nirvana_li</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; nirvana_li]]></copyright><item><title><![CDATA[面向对象设计三大原则(封装变化点，对接口进行编程，多使用组合而不是继承)]]></title><link>https://blog.csdn.net/nirvana_li/article/details/1716014</link><guid>https://blog.csdn.net/nirvana_li/article/details/1716014</guid><author>nirvana_li</author><pubDate>Sun, 29 Jul 2007 23:51:00 +0800</pubDate><description><![CDATA[该三大原则应该算是OO的基础，很多OO设计原则和设计模式都是在此三大原则上面衍生发展而来。所以对于学习设计模式的人，了解这三大原则显然是非常必要的。 1．面向对象设计的第一原则：封装变化点。隔离变化点的好处在于，将系统中经常变化的部分和稳定的部分隔离，有助于增加复用性，并降低系统耦合度。很多设计模式的意图中都明显地指出了其对问题的解决方案，学习设计模式的要点是发现其解决方案中封装的变化点。]]></description><category></category></item><item><title><![CDATA[设计模式（六）：Prototype模式]]></title><link>https://blog.csdn.net/nirvana_li/article/details/1594976</link><guid>https://blog.csdn.net/nirvana_li/article/details/1594976</guid><author>nirvana_li</author><pubDate>Wed, 02 May 2007 17:57:00 +0800</pubDate><description><![CDATA[ Prototype模式被翻译为原型模式，这里我们看到了创建对象的另外一种方式。一般在程序中我们可以使用的对象创建方法有：1. 使用new关键字创建对象，这是最最普通的一种。2. 使用对象序列化（Serialize）创建对象3. 使用反射机制（Reflection）动态创建对象4. 使用clone（克隆）方式创建对象这里的Prototype模式用的就是第4种方法，它通过复制一个已经存在的对象实例来]]></description><category></category></item><item><title><![CDATA[设计模式（五）：Builder模式]]></title><link>https://blog.csdn.net/nirvana_li/article/details/1594917</link><guid>https://blog.csdn.net/nirvana_li/article/details/1594917</guid><author>nirvana_li</author><pubDate>Wed, 02 May 2007 16:40:00 +0800</pubDate><description><![CDATA[Builder模式主要解决的问题是：分离复杂对象的构建过程（construction）和表示（representation），以使得相同的构建过程能够产生不同的表示。通常Builder模式会和Composite模式一起使用。图中：Builder是创建产品的抽象接口ConcreteBuilder是Builder的具体实现，由它负责构建或者组装产品。Director的职责就是控制对象创建过程，它接受一]]></description><category></category></item><item><title><![CDATA[设计模式（四）：Abstract Factory模式]]></title><link>https://blog.csdn.net/nirvana_li/article/details/1594806</link><guid>https://blog.csdn.net/nirvana_li/article/details/1594806</guid><author>nirvana_li</author><pubDate>Wed, 02 May 2007 14:14:00 +0800</pubDate><description><![CDATA[Abstract Factory模式是对Factory Method模式的进一步演变。Factory Method所要解决的是new的问题。而Abstract Factory模式则试图为创建一系列产品提供统一的接口。当需要创建某一系列产品的时候，可以从抽象工厂中选择相应的系列创建一个具体的工厂类。OK，我们现在就来假设一个场景，比如需要一个GUI（图形用户界面），它既可以显示Windows风格的按]]></description><category></category></item><item><title><![CDATA[设计模式（三）：Factory Method模式]]></title><link>https://blog.csdn.net/nirvana_li/article/details/1570451</link><guid>https://blog.csdn.net/nirvana_li/article/details/1570451</guid><author>nirvana_li</author><pubDate>Thu, 19 Apr 2007 14:06:00 +0800</pubDate><description><![CDATA[在GOF中关于Factory Method模式的定义如下：“Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses.” 定义创建]]></description><category></category></item><item><title><![CDATA[设计模式（二）：MonoState模式]]></title><link>https://blog.csdn.net/nirvana_li/article/details/1449126</link><guid>https://blog.csdn.net/nirvana_li/article/details/1449126</guid><author>nirvana_li</author><pubDate>Tue, 19 Dec 2006 16:42:00 +0800</pubDate><description><![CDATA[MonoState模式：先说说MonoState这个单词的意思，设计模式的名字都是很有意思的，因为为了方便交流、记忆，所以设计模式的命名都对该模式的意图进行了表述。Mono是一个词根，英语中Mono,Mon都表示的是1的意思，state意思为"状态"。MonoState的意思就是"单一的状态"。MonoState模式同Singleton一样也是一种保证单一性的模式。但是它和Singleto]]></description><category></category></item><item><title><![CDATA[设计模式（一）：Singleton模式]]></title><link>https://blog.csdn.net/nirvana_li/article/details/1447772</link><guid>https://blog.csdn.net/nirvana_li/article/details/1447772</guid><author>nirvana_li</author><pubDate>Mon, 18 Dec 2006 14:11:00 +0800</pubDate><description><![CDATA[Singleton模式： 意图：保证类有且仅有一个实例对象，并提供对它的全局访问点。 实现：1．  为了实现以上的意图，首先要绕过常规的实例化对象的手法，即通过new直接实例化对象。因为new的方式在“特殊”时候存在两个缺点：第一个很明显，直接new的方式具有较高的耦合性，缺乏相应的灵活度；第二个缺点，类实例化的主动权被客户端程序掌握，而不为类自身所能控制。也就是说，要确保一个]]></description><category></category></item><item><title><![CDATA[ 静态工厂方法]]></title><link>https://blog.csdn.net/nirvana_li/article/details/1179243</link><guid>https://blog.csdn.net/nirvana_li/article/details/1179243</guid><author>nirvana_li</author><pubDate>Tue, 05 Sep 2006 11:29:00 +0800</pubDate><description><![CDATA[它只是一个简单的静态方法,返回类的一个实例.1. 与构造函数不同,静态工厂方法具有名字.选用适当名字的静态工厂方法可以使一个类更易于使用,并且相应的客户代码更易于阅读.2. 与构造函数不同,不要求非得创建一个新的对象.这使得一些非可变类可以使用一个预先构造好的实例,或者把已经构造好的实例缓冲起来.同时,静态工厂方法可以为重复的调用返回同一个对象,这也可以被用来控制"在某一时刻哪些实例应该存在." ]]></description><category></category></item><item><title><![CDATA[在RMI中应用Factory模式]]></title><link>https://blog.csdn.net/nirvana_li/article/details/1176965</link><guid>https://blog.csdn.net/nirvana_li/article/details/1176965</guid><author>nirvana_li</author><pubDate>Mon, 04 Sep 2006 21:23:00 +0800</pubDate><description><![CDATA[什么是"factory"?为什么要使用它?在这里,factory是指实现了factory设计模式的软件逻辑.通常在需要使用一个对象来控制其它对象的创建或存取过程的时候将非常有用.在RMI中使用factory,能够降低在RMI注册表中注册对象的数量.真实世界的factory示例:银行当你前往银行往自己的账户存钱的时候,你并不会径直走到金库,然后打开写有你名字的抽屉,然后把钱放进去,再关上抽屉离开.仔]]></description><category></category></item><item><title><![CDATA[关于敏捷软件开发]]></title><link>https://blog.csdn.net/nirvana_li/article/details/1173094</link><guid>https://blog.csdn.net/nirvana_li/article/details/1173094</guid><author>nirvana_li</author><pubDate>Sun, 03 Sep 2006 20:15:00 +0800</pubDate><description><![CDATA[最近在看,对其中的原则和实践非常感兴趣.顺便记录下来....1. 敏捷软件开发宣言 个体和交互          胜过   过程和工具 可以工作的软件  胜过   面面俱到的文档 客户合作              胜过   合同谈判 响应变化              胜过   遵循计划2. 12个原则:  2.1 我们最优先要做的是通过尽早的,持续的交付有价值的软件来使客户满意  2.]]></description><category></category></item><item><title><![CDATA[开闭原则(Open-Closed Principle)与Strategy模式]]></title><link>https://blog.csdn.net/nirvana_li/article/details/1156049</link><guid>https://blog.csdn.net/nirvana_li/article/details/1156049</guid><author>nirvana_li</author><pubDate>Fri, 01 Sep 2006 20:38:00 +0800</pubDate><description><![CDATA["开闭原则":"开闭原则"是一种与类设计相关的原则."软件实体(类,模块,函数等)应该对扩展开放,而对修改关闭[Martin,p99]"."开闭原则"有两个重要的方面:1. "对扩展开放": 当应用程序的需求发生改变,可以通过扩展模块的行为来应对.2. "对修改关闭": 扩展模块的行为并不会导致模块的源代码或它的二进制代码的修改.在应用程序中有两种设计模式可以帮助实现"开闭原则": Templat]]></description><category></category></item><item><title><![CDATA[[java] "Hello"和new String("Hello")产生String对象的区别]]></title><link>https://blog.csdn.net/nirvana_li/article/details/952240</link><guid>https://blog.csdn.net/nirvana_li/article/details/952240</guid><author>nirvana_li</author><pubDate>Fri, 21 Jul 2006 11:44:00 +0800</pubDate><description><![CDATA[问题在于看了的实践 31:如欲进行字符串接合,StringBuffer优于String.其中使用new String("...")形式产生的bytecode中显示产生了两个String对象!做了以下实验:比较Test.java和Test1.java两者之间的bytecode.package com.my;public class Test { public static void ]]></description><category></category></item><item><title><![CDATA[近期关于“软件架构”的一个看点]]></title><link>https://blog.csdn.net/nirvana_li/article/details/837608</link><guid>https://blog.csdn.net/nirvana_li/article/details/837608</guid><author>nirvana_li</author><pubDate>Mon, 26 Jun 2006 21:16:00 +0800</pubDate><description><![CDATA[Peter Eeles准备写一系列的关于软件架构的文章，这个消息我是从www.artima.com上看来的。因为Bill Venners写了一篇文章叫做Software Architecture is Leadership，地址：http://www.artima.com/weblogs/viewpost.jsp?thread=154933里面提到他对于Peter Eeles写的What is a]]></description><category></category></item><item><title><![CDATA[OOD原则：SRP、OCP以及LSP]]></title><link>https://blog.csdn.net/nirvana_li/article/details/749737</link><guid>https://blog.csdn.net/nirvana_li/article/details/749737</guid><author>nirvana_li</author><pubDate>Mon, 22 May 2006 17:43:00 +0800</pubDate><description><![CDATA[单一职责原则（SRP :  Single Response Principle)就一个类而言，应该仅有一个引起它变化的原因。在这里，职责的定义是：  “变化的原因”。对于何时遵循SRP有以下的考虑：1.如果应用程序的变化会影响到类中某一种职责，那么就应该将它与另一种职责分开，这样做可以避免客户应用程序和类中的这两职责耦合在一起。2.如果应用程序的变化总是会导致两个职责同时变化，那么就不必要分离它们]]></description><category></category></item><item><title><![CDATA[第七课 使用存储过程(翻译)]]></title><link>https://blog.csdn.net/nirvana_li/article/details/598947</link><guid>https://blog.csdn.net/nirvana_li/article/details/598947</guid><author>nirvana_li</author><pubDate>Tue, 14 Feb 2006 20:11:00 +0800</pubDate><description><![CDATA[本文档由李欣蔚(nirvana_li)翻译自http://www.csharp-station.com/,转载请注名出处!更新日期2006-2-14Lesson 07: Using Stored Procedures第7课，使用存储过程这节课展示了在数据存取代码中如何使用存储过程。以下是本节课的目标：         学习如何通过使用存储过程修改SqlCommand对象]]></description><category></category></item><item><title><![CDATA[第六课 向命令中添加参数(翻译)]]></title><link>https://blog.csdn.net/nirvana_li/article/details/598946</link><guid>https://blog.csdn.net/nirvana_li/article/details/598946</guid><author>nirvana_li</author><pubDate>Tue, 14 Feb 2006 20:10:00 +0800</pubDate><description><![CDATA[本文档由李欣蔚(nirvana_li)翻译自http://www.csharp-station.com/,转载请注名出处!更新日期2006-2-14Lesson 06: Adding Parameters to Commands第6课:向命令中添加参数这节课介绍了如何在命令中使用参数,下面是本节课的目标:         了解parameter参数是什么     理]]></description><category></category></item><item><title><![CDATA[第五课 使用断开数据--DataSet和SqlDataAdapter(翻译)]]></title><link>https://blog.csdn.net/nirvana_li/article/details/598937</link><guid>https://blog.csdn.net/nirvana_li/article/details/598937</guid><author>nirvana_li</author><pubDate>Tue, 14 Feb 2006 19:57:00 +0800</pubDate><description><![CDATA[本文档由李欣蔚(nirvana_li)翻译自http://www.csharp-station.com/,转载请注名出处!更新日期2006-2-14Lesson 05: Working with Disconnected Data - The DataSet and SqlDataAdapter第五课：使用断开数据－－DataSet和SqlDataAdapter这节课解释如何使用断]]></description><category></category></item><item><title><![CDATA[第四课 使用SqlDataReader读取数据(翻译)]]></title><link>https://blog.csdn.net/nirvana_li/article/details/598934</link><guid>https://blog.csdn.net/nirvana_li/article/details/598934</guid><author>nirvana_li</author><pubDate>Tue, 14 Feb 2006 19:55:00 +0800</pubDate><description><![CDATA[本文档由李欣蔚(nirvana_li)翻译自http://www.csharp-station.com/,转载请注名出处!更新日期2006-2-14Lesson 04: Reading Data with the SqlDataReader使用SqlDataReader读取数据本课解释了如何使用SqlDataReader对象读取数据。以下是本课的目标：         ]]></description><category></category></item><item><title><![CDATA[第三课 SqlCommand对象(翻译)]]></title><link>https://blog.csdn.net/nirvana_li/article/details/598932</link><guid>https://blog.csdn.net/nirvana_li/article/details/598932</guid><author>nirvana_li</author><pubDate>Tue, 14 Feb 2006 19:54:00 +0800</pubDate><description><![CDATA[本文档由李欣蔚(nirvana_li)翻译自http://www.csharp-station.com/,转载请注名出处!更新日期2006-2-14Lesson 03: The SqlCommand ObjectSqlCommand对象这节课描述了SqlCommand对象以及如何使用它与数据库交互。下面是本课的目标：    知道什么是command对象     学习]]></description><category></category></item><item><title><![CDATA[第二课 SqlConnection对象(翻译)]]></title><link>https://blog.csdn.net/nirvana_li/article/details/598929</link><guid>https://blog.csdn.net/nirvana_li/article/details/598929</guid><author>nirvana_li</author><pubDate>Tue, 14 Feb 2006 19:52:00 +0800</pubDate><description><![CDATA[本文档由李欣蔚(nirvana_li)翻译自http://www.csharp-station.com/,转载请注名出处!更新日期2006-2-14Lesson 02: The SqlConnection Object这节课描述了SqlConnection对象，和如何连接数据库。以下是本课目标         知道连接对象用来干什么     学习如何初始化SqlConn]]></description><category></category></item></channel></rss>