<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[zzdnb的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/zzdnb</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zzdnb]]></copyright><item><title><![CDATA[SOLID原则]]></title><link>https://blog.youkuaiyun.com/zzdnb/article/details/130869843</link><guid>https://blog.youkuaiyun.com/zzdnb/article/details/130869843</guid><author>zzdnb</author><pubDate>Thu, 25 May 2023 16:37:00 +0800</pubDate><description><![CDATA[SOLID原则是一组设计原则，它们旨在帮助开发人员创建易于维护和可扩展的软件系统，这些原则的缩写代表以下5个原则：1. 单一职责原则（SRP）：一个类应该只有一个职责。2. 开闭原则（OCP）：软件实体应该对扩展开放，对修改关闭。3. 里式替换原则（LSP）：子类应该能够替换其父类并保持系统行为的一致性。4. 接口隔离原则（ISP）：客户端不应该依赖于它不使用的接口。5. 依赖反转原则（DIP）：高层模块不应该依赖于底层模块，它们应该通过抽象接口进行交互。]]></description><category></category></item><item><title><![CDATA[软件构造_Spec]]></title><link>https://blog.youkuaiyun.com/zzdnb/article/details/130869288</link><guid>https://blog.youkuaiyun.com/zzdnb/article/details/130869288</guid><author>zzdnb</author><pubDate>Thu, 25 May 2023 16:15:55 +0800</pubDate><description><![CDATA[行为等价（Behavioral equivalence），即不同的代码实现，对于用户来讲，是否是等价的，即相对于提供的同一个spec，是不是都被满足了，如果都满足那么就算做等价。行为等价性可以被视为一种黑盒测试技术，其中测试人员将计算机程序的输入和输出（包括程序的界面，数据库操作和整个程序的行为）与其他实现进行比较，以检查不同实现之间的一致性和一致性，从而找出系统中的缺陷或错误。后置条件越强，对于用户来讲得到的信息越具体，这样就需要程序员使用更加具体的实现方式，限制了实现的手段，使得程序员不能随便实现了。]]></description><category></category></item><item><title><![CDATA[Java中的“RI“与“RI“]]></title><link>https://blog.youkuaiyun.com/zzdnb/article/details/130868780</link><guid>https://blog.youkuaiyun.com/zzdnb/article/details/130868780</guid><author>zzdnb</author><pubDate>Thu, 25 May 2023 15:53:26 +0800</pubDate><description><![CDATA[表示域（称为R）包含的是值具体的实现实体。抽象域（称为A）包含类型设计时支持使用的值。抽象函数是表示值到其对应的抽象值的映射——AF: R->A。R空间：表示空间，是在类中表示的值。A空间：抽象空间，用户看到和使用的值。抽象函数AF： R和A之间映射关系的函数，即如何去解释R中的每一个值为A中的每一个值。AF是满射、非单射、未必双射。值得一提的是，当两个不同的r值指向同一个a值的时候，这是ADT的不变量并没有违反，也就是说，rep不一定得一直保持不变，这是一种有益的变化。]]></description><category></category></item><item><title><![CDATA[Java中的数据类型与类型检验]]></title><link>https://blog.youkuaiyun.com/zzdnb/article/details/130867927</link><guid>https://blog.youkuaiyun.com/zzdnb/article/details/130867927</guid><author>zzdnb</author><pubDate>Thu, 25 May 2023 15:38:51 +0800</pubDate><description><![CDATA[浅谈一下对软件构造中Java的数据类型与类型检验的理解。]]></description><category></category></item><item><title><![CDATA[软件构造过程与配置管理]]></title><link>https://blog.youkuaiyun.com/zzdnb/article/details/130732558</link><guid>https://blog.youkuaiyun.com/zzdnb/article/details/130732558</guid><author>zzdnb</author><pubDate>Wed, 17 May 2023 19:32:48 +0800</pubDate><description><![CDATA[这一章主要介绍了软件构造的大致过程，并重点介绍了软件构造过程中的版本控制系统。重点是大致了解软件开发生命周期，以及熟悉掌握git的使用。]]></description><category></category></item><item><title><![CDATA[测试优先的编程]]></title><link>https://blog.youkuaiyun.com/zzdnb/article/details/130692096</link><guid>https://blog.youkuaiyun.com/zzdnb/article/details/130692096</guid><author>zzdnb</author><pubDate>Mon, 15 May 2023 21:12:35 +0800</pubDate><description><![CDATA[作为一名刚升上大二的软件工程学生，我对软件测试的重要性并不是非常清楚。但是事实上，在软件产品开发的生命周期中，软件测试是一个至关重要的环节。它是确保软件产品质量的最后一道防线，也是为最终用户提供可靠、稳定、高质量的产品的重要途径。]]></description><category></category></item><item><title><![CDATA[软件构造“三维度与八视图”]]></title><link>https://blog.youkuaiyun.com/zzdnb/article/details/130053614</link><guid>https://blog.youkuaiyun.com/zzdnb/article/details/130053614</guid><author>zzdnb</author><pubDate>Mon, 10 Apr 2023 11:30:01 +0800</pubDate><description><![CDATA[今天软件构造的内容结束了，回过头来重新看最开始学习的“三维度与八视图”，发现已经能从刚开始的不理解，到现在可以在某一个视图中找到对应的知识和内容。这篇文章即用来总结一下“三维度与八视图”。先给出一张关于“三维度八视图”的总体图：多维度视图主要包括构造时/运行时视图（按阶段划分）、时刻/阶段视图（按动态性划分）、代码/构件视图（按构造对象的层次划分）。现在从八个视图逐一来分析。这一部分主要是源码层面的，根据表达“需求和“设计”思想设计AST（code），即将源码彻底结构化，变成一棵树。]]></description><category></category></item><item><title><![CDATA[Java中的clone方法]]></title><link>https://blog.youkuaiyun.com/zzdnb/article/details/129932297</link><guid>https://blog.youkuaiyun.com/zzdnb/article/details/129932297</guid><author>zzdnb</author><pubDate>Mon, 03 Apr 2023 16:12:51 +0800</pubDate><description><![CDATA[分配完内存之后，再调用构造函数，填充对象的各个域，这一步叫做对象的初始化，构造方法返回后，一个对象创建完毕，可以把他的引用（地址）发布到外部，在外部就可以使用这个引用操纵这个对象（当然，由于指令的重排序，发布对象可能在构造函数返回之前，详细看。都是分配内存，调用clone方法时，分配的内存和源对象（即调用clone方法的对象）相同，然后再使用源对象中对应的各个域，填充新对象的域， 填充完成之后，clone方法返回，一个新的相同的对象被创建，同样可以把这个新对象的引用发布到外部。]]></description><category></category></item><item><title><![CDATA[Java的可变类与不可变类]]></title><link>https://blog.youkuaiyun.com/zzdnb/article/details/129930493</link><guid>https://blog.youkuaiyun.com/zzdnb/article/details/129930493</guid><author>zzdnb</author><pubDate>Mon, 03 Apr 2023 16:09:04 +0800</pubDate><description><![CDATA[什么是不可变对象(immutable object)，不可变对象有什么好处，在什么情况下应该用，或者更具体一些，Java的String类为什么要设成immutable类型？不可变对象，顾名思义就是创建后不可以改变的对象，典型的例子就是Java中的String类。]]></description><category></category></item><item><title><![CDATA[Java static关键字]]></title><link>https://blog.youkuaiyun.com/zzdnb/article/details/129928542</link><guid>https://blog.youkuaiyun.com/zzdnb/article/details/129928542</guid><author>zzdnb</author><pubDate>Mon, 03 Apr 2023 14:59:36 +0800</pubDate><description><![CDATA[在类中，使用 static 修饰符修饰的属性（成员变量）称为静态变量，也可以称为类变量，常量称为静态常量，方法称为静态方法或类方法，它们统称为静态成员，归整个类所有。]]></description><category></category></item><item><title><![CDATA[贪心算法入门]]></title><link>https://blog.youkuaiyun.com/zzdnb/article/details/129666371</link><guid>https://blog.youkuaiyun.com/zzdnb/article/details/129666371</guid><author>zzdnb</author><pubDate>Mon, 20 Mar 2023 21:14:38 +0800</pubDate><description><![CDATA[在学习算法设计与分析的课程中，我发现贪心算法与其他算法相比具有一定的特殊性。特此将一些自己的想法和理解记录下来，供复习所用。]]></description><category></category></item></channel></rss>