上一页 1 2 3 4 5 6 ··· 9 下一页
摘要:有时候你会认为某个对象应该是去全局唯一的,这就是引用(Reference)的概念。它代表当你在某个地点对他进行修改之后,那么所有共享他的对象都应该在再次访问他的时候得到相应的修改。而不会像值对象(Value)一样,不可修改。举个例子,你认识小明,我也认识小明,小明忽然把头发都踢了,这个时候你认识的小... 阅读全文
posted @ 2014-12-23 18:47 Ricky.K 阅读(1077) 评论(0) 推荐(0) 编辑
摘要:当你在一个类中使用字段的时候,发现这个字段必须要和其他数据或者行为一起使用才有意义。你就应该考虑把这个数据项改成对象。在开发初期,我们对于新类中的字段往往会采取简单的基本类型形式来保存,但随着我们开发进度的增加,这些简单的数据项就不再那么简单了。比如一开始你会使用一个字符串来表示一串电话号码,但是随... 阅读全文
posted @ 2014-12-22 09:58 Ricky.K 阅读(1300) 评论(1) 推荐(1) 编辑
摘要:如果你直接访问一个字段,你就会和这个字段直接的耦合关系变得笨拙。也就是说当这个字段权限更改,或者名称更改之后你的客户端代码都需要做相应的改变,此时你可以为这个字段建立设值和取值函数并且只以这些函数来访问字段。自古以来,面向对象关于字段访问就存在两个派系,其中一个派系认为,如果在该字段所在的类中,你就... 阅读全文
posted @ 2014-12-19 12:26 Ricky.K 阅读(1304) 评论(0) 推荐(0) 编辑
摘要:同Introduce Foreign Method一样,很多时候你不能修改编辑原始类,你需要为这些服务类增加一些额外的函数,但你没有这个权限或者入口。如果你只需要一个或者两个外加函数那么你可以放心的使用Introduce Foregin Method,但是如果你发现此时有很多外加函数需要在客户类代码... 阅读全文
posted @ 2014-12-18 12:15 Ricky.K 阅读(1136) 评论(0) 推荐(0) 编辑
摘要:当你无法获得一个类的源代码或者没有权限去修改这个类的时候,你对于这种为你服务的类,你可能会出现需要别的需求的时候,比如一个Date类,你需要能够让他本身直接返回出他的后一天的对象,但他没有,这个时候你就需要暂时使用Introduce Foreign Method来做过渡,并且在适当时候通知作者把这个... 阅读全文
posted @ 2014-12-17 11:02 Ricky.K 阅读(758) 评论(0) 推荐(0) 编辑
摘要:如果你发现某个类做了过多的简单委托动作,你就可以考虑是否可以让客户直接去调用受托类。在Hide Delegate中,我们介绍了封装受托对象的好处,但好处归好处也存在代价,就是当你每次需要在受托对象中增加新函数的时候你都需要在委托的服务对象中增加相应的函数来委托。随着受托对象特性越来越多,你会发现你所... 阅读全文
posted @ 2014-12-17 09:56 Ricky.K 阅读(770) 评论(0) 推荐(0) 编辑
摘要:所谓委托关系,就是一个类对于另一个类来说纯粹作为接口转发,即客户通过一个委托类去调用另一个对象。直白的委托关系就是委托类直接返回出目标类给客户调用,这个关系很麻烦,因为委托关系的变动就会影响客户端的代码。隐秘的委托关系很健康,当你完全隐藏之后,你委托关系的变化只会发生在委托类的内部,从而不会去影响客... 阅读全文
posted @ 2014-12-16 10:11 Ricky.K 阅读(1133) 评论(2) 推荐(0) 编辑
摘要:如果某个类没有做太多的事情,你可以将这个类的所有特性搬移到另外一个类中,然后删除原类。可以看到,Inline Class正好和Extract Class相反,后者是将一个巨类分解成多个小类从而来分担责任。这里是一个类如果不再承担足够多的责任,不再有单独存在的理由(通常是因为重构动作移除了这个类的责任... 阅读全文
posted @ 2014-12-15 09:57 Ricky.K 阅读(982) 评论(0) 推荐(0) 编辑
摘要:在面向对象中,对于类这个概念我们应该有一个清晰的责任认识,就是每个类应该只有一个变化点,每个类的变化应该只受到单一的因素,即每个类应该只有一个明确的责任。当然了,说时容易做时难,很多人可能都会和我一样,一开始建立类的时候信心满满,牢记SRP原则,但随着开发进度的不断进行,很有可能你会给你原本设计好的... 阅读全文
posted @ 2014-12-14 17:56 Ricky.K 阅读(1363) 评论(0) 推荐(0) 编辑
摘要:在类与类之间搬移状态和行为,是重构过程中必不可少的步骤。很有可能在你现在觉得正常的类,等你到了下个礼拜你就会觉得不合适。或者你在下个礼拜创建了一个新的类并且你需要讲现在类的部分字段和行为移动到这个新类中。如果你发现在一个类中的某个字段,更多的被别的类的函数所使用,包括设值set和取值get函数锁取用... 阅读全文
posted @ 2014-12-13 22:36 Ricky.K 阅读(1012) 评论(2) 推荐(1) 编辑
上一页 1 2 3 4 5 6 ··· 9 下一页