09 2017 档案

JAVA设计模式总结之23种设计模式
摘要:上一篇总结了设计模式的六大原则《JAVA设计模式总结之六大设计原则》,这一篇,正式进入到介绍23种设计模式的归纳总结。 一、什么是设计模式 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解 阅读全文

posted @ 2017-09-29 21:57 pony1223 阅读(423402) 评论(14) 推荐(80) 编辑

JAVA设计模式总结之六大设计原则
摘要:从今年的七月份开始学习设计模式到9月底,设计模式全部学完了,在学习期间,总共过了两篇;第一篇看完设计模式后,感觉只是脑子里面有印象但无法言语。于是决定在看一篇,到9月份第二篇设计模式总于看完了,这一篇看完,脑子里面已经能够对绝大多数的设计模式能够说出其核心思想且可以画出类图也知道应用场景,算是一个进 阅读全文

posted @ 2017-09-27 22:53 pony1223 阅读(39129) 评论(10) 推荐(34) 编辑

redis 基础学习总结
摘要:背景:因为项目用到了redis,加上之前一直听说了redis,但一直没有用过,正好项目现在要用到了,抽时间简单学习了下,做个记录总结下。 一 、Redis简介 介绍Redis之前,先了解下NoSQL (Not noly SQL)不仅仅是SQL 属于非关系型数据库;Redis就属于非关系型数据库 传统 阅读全文

posted @ 2017-09-20 22:40 pony1223 阅读(1676) 评论(0) 推荐(0) 编辑

重构改善既有代码设计--重构手法19:Replace Data Value with Object (以对象取代数据值)
摘要:你有一笔数据项(data item),需要额外的数据和行为。 将这笔数据项变成一个对象。 class Order... private string customer; ==> class Order... private Customer _customer; class Customer... 阅读全文

posted @ 2017-09-20 20:45 pony1223 阅读(345) 评论(0) 推荐(0) 编辑

重构改善既有代码设计--重构手法18:Self Encapsulate Field (自封装字段)
摘要:你直接访问一个值域(field),但与值域之间的耦合关系逐渐变得笨拙。 为这个值域建立取值/设值函数(getting/setting methods),并且只以这些函数来访问值域。 private int _low, _high;boolean includes(int arg) { return 阅读全文

posted @ 2017-09-20 20:43 pony1223 阅读(219) 评论(0) 推荐(0) 编辑

重构改善既有代码设计--重构手法16:Introduce Foreign Method (引入外加函数)&& 重构手法17:Introduce Local Extension (引入本地扩展)
摘要:重构手法16:Introduce Foreign Method (引入外加函数)你需要为提供服务的类增加一个函数,但你无法修改这个类。在客户类中建立一个函数,并以第一参数形式传入一个服务类实例。 动机:这种事情发生了太多次了,你正在使用一个类,它真的很好,为你提供了需要的所有服务。而后,你又需要一项 阅读全文

posted @ 2017-09-20 20:40 pony1223 阅读(238) 评论(0) 推荐(0) 编辑

重构改善既有代码设计--重构手法15:Remove Middle Man (移除中间人)
摘要:某个类做了过多的简单委托动作。让客户直接调用受托类。 动机:在Hide Delegate (隐藏委托关系)的“动机”中,谈到了“封装委托对象”的好处。但是这层封装也是要付出代价的,它的代价是:每当客户要使用受托类的新特性时,你就必须在服务端添加一个简单委托函数。随着委托类的特性(功能)越来越多,这一 阅读全文

posted @ 2017-09-20 20:37 pony1223 阅读(358) 评论(0) 推荐(0) 编辑

重构改善既有代码设计--重构手法14:Hide Delegate (隐藏委托关系)
摘要:客户通过一个委托类来调用另一个对象。在服务类上建立客户所需的所有函数,用以隐藏委托关系。 动机:封装即使不是对象的最关机特性,也是最关机特性之一。“封装”意味着每个对象都应该少了解系统的其他部分。如此以来,一旦发生变化,需要了解这一变化的就比较少 这会使系统比较容易进行。 任何学过对象技术的人都知道 阅读全文

posted @ 2017-09-20 20:35 pony1223 阅读(353) 评论(0) 推荐(0) 编辑

JAVA设计模式:蝇量模式
摘要:声明:转载请说明来源:http://www.cnblogs.com/pony1223/p/7554686.html 一、引出蝇量模式 现在假设有一个项目,这个项目是为公园设计一个景观的部署,那么这个时候就会有一个问题出现,那么就是避免不了的会有一个树的类,树会很多,那么这个时候如果按照传统的方案来合 阅读全文

posted @ 2017-09-19 22:40 pony1223 阅读(2221) 评论(0) 推荐(1) 编辑

JAVA设计模式:桥接模式
摘要:声明:转载请说明来源:http://www.cnblogs.com/pony1223/p/7530721.html 一、引出桥接模式 假设我们现在有一个项目,这个项目列就是我们是生产遥控器的厂商,承接各种遥控器的生产,比如我们现在承接的有LG、索尼的电视厂商的,那如果我们现在要设计的话,我们首先想到 阅读全文

posted @ 2017-09-16 11:39 pony1223 阅读(1449) 评论(1) 推荐(4) 编辑

重构改善既有代码设计--重构手法13:Inline Class (将类内联化)
摘要:某个类没有做太多事情。将这个类的所有特性搬移到另一个类中,然后移除原类。 动机:Inline Class (将类内联化)正好于Extract Class (提炼类)相反。如果一个类不再承担足够责任、不再有单独存在的理由(这通常是因为此前的重构动作移走了这个类的责任),就挑选这个“萎缩类”的最频繁的用 阅读全文

posted @ 2017-09-16 10:24 pony1223 阅读(551) 评论(0) 推荐(0) 编辑

重构改善既有代码设计--重构手法12:Extract Class (提炼类)
摘要:某个类做了应该由2个类做的事。建立一个新类,将相关的字段和函数从旧类搬移到新类。 动机:一个类应该是一个清楚地抽象,处理一些明确的责任。但是在实际工作中,类会不断成长扩展。你会在这儿加入一些功能,在哪加入一些数据。给某个类添加一项新责任时,你会觉得不值得为这项责任分离出一个单独的类。于是,随着责任不 阅读全文

posted @ 2017-09-16 10:23 pony1223 阅读(570) 评论(0) 推荐(0) 编辑

重构改善既有代码设计--重构手法11:Move Field (搬移字段)
摘要:你的程序中,某个字段被其所驻类之外的另一个类更多的用到。在目标类建立一个新字段,修改源字段的所有用户,令它们改用新字段。 动机:在类之间移动状态和行为,是重构过程中必不可少的措施。随着系统发展,你会发现自己需要新的类,并需要将现有的工作责任拖到新的类中。在这个星期看似合理而正确的设计决策,到了下个星 阅读全文

posted @ 2017-09-16 10:21 pony1223 阅读(434) 评论(0) 推荐(0) 编辑

重构改善既有代码设计--重构手法10:Move Method (搬移函数)
摘要:你的程序中,有个函数与其所驻类之外的另一个类进行更多的交流:调用后者,或被后者调用。在该函数最常用引用的类中建立一个有着类似行为的新函数。将旧函数编程一个单纯的委托函数,或是将旧函数完全移除。 动机:“搬移函数”是重构理论的支柱。如果一个类有太多行为,或如果一个类与另一个类有太多合作而形成高度耦合, 阅读全文

posted @ 2017-09-16 10:18 pony1223 阅读(831) 评论(0) 推荐(0) 编辑

重构改善既有代码设计--重构手法 之重新组织你的函数总结
摘要:前面讲了那么多的重构手法,估计学完后都会忘记,因此暂停下脚本,总结下,其实前面的所有重构手段,围绕一个主题:函数。即对函数的优化;为此首先一个函数里面代码很长,那么此时我们要做的就是提炼函数。 提炼函数的过程中,我们会产生新的函数,这个时候最重要的就是,是否有变量的引用,如果没有,那么这个函数很好提 阅读全文

posted @ 2017-09-14 22:58 pony1223 阅读(259) 评论(0) 推荐(0) 编辑

重构改善既有代码设计--重构手法09:Substitute Algorithm (替换算法)
摘要:你想要把某个算法替换为另一个更清晰地算法。将函数本体替换为另一个算法。 重构: 动机:解决问题有好几种方法。算法也是如此。如果你发现做一件事可以有更清晰地方式,就应该以较清晰地方式取代复杂的方式。“重构”可以把一些复杂东西分解为较简单的小块,但有时你就必须删除整个算法,代之以简单的算法。随着对问题有 阅读全文

posted @ 2017-09-14 22:45 pony1223 阅读(465) 评论(0) 推荐(0) 编辑

重构改善既有代码设计--重构手法08:Replace Method with Method Object (以函数对象取代函数)
摘要:你有一个大型函数,其中对局部变量的使用,使你无法釆用 Extract Method。 将这个函数放进一个单独对象中,如此一来局部变量就成了对象内的值域(field) 然后你可以在同一个对象中将这个大型函数分解为数个小型函数。 动机:局部变量的存在会增加函数分解的难度。如果一个函数之中局部变量泛滥,那 阅读全文

posted @ 2017-09-14 22:42 pony1223 阅读(395) 评论(0) 推荐(0) 编辑

重构改善既有代码设计--重构手法07:Remove Assignments to Parameters (移除对参数的赋值)
摘要:代码对一个 参数赋值。以一个临时变量取代该参数的位置。 重构后: 动机:要清楚“对参数赋值”这个说法的意思。如果你把一个名为foo的对象作为参数传给某个函数,那么“对参数赋值”意味着改变foo,使它引用另外一个对象。如果你在“被传入对象”身上进行什么操作,那没什么问题。这里只针对“foo被改而指向另 阅读全文

posted @ 2017-09-14 22:36 pony1223 阅读(406) 评论(0) 推荐(0) 编辑

重构改善既有代码设计--重构手法06:Split Temporary Variable (分解临时变量)
摘要:你的程序有某个临时变量被赋值超过一次,它既不是循环变量,也不被用于收集计算结果。针对每次赋值,创造一个独立、对应的临时变量 重构后: 动机:临时变量有各种不同用途,其中某些用途会很自然的导致临时变量被多次赋值。“循环变量”和“结果收集变量”就是典型的例子:循环变量会随循环的每次运行而改变; 结果收集 阅读全文

posted @ 2017-09-14 22:29 pony1223 阅读(526) 评论(0) 推荐(0) 编辑

重构改善既有代码设计--重构手法05:Introduce Explaining Variable (引入解释性变量)
摘要:发现:你有一个复杂的表达式。 解决:将该复杂的表达式(或其中的部分)的结果放进一个临时变量,并以此变量名称来解释表达式用途。 动机:表达式有可能非常复杂而难以阅读。这种情况下,临时变量可以帮助你将表达式分解为比较容易管理的形式。 在条件逻辑中,Introduce Explaining Variabl 阅读全文

posted @ 2017-09-14 22:20 pony1223 阅读(400) 评论(0) 推荐(0) 编辑

重构改善既有代码设计--重构手法04:Replace Temp with Query (以查询取代临时变量)
摘要:所谓的以查询取代临时变量:就是当你的程序以一个临时变量保存某一个表达式的运算效果。将这个表达式提炼到一个独立函数中。将这个临时变量的所有引用点替换为对新函数的调用。此后,新函数就可以被其他函数调用。 例子如下: 重构之后代码: 引用书中原文来说: 动机:临时变量的问题在于:它们是暂时的,而且只能在所 阅读全文

posted @ 2017-09-14 22:12 pony1223 阅读(551) 评论(0) 推荐(0) 编辑

JAVA设计模式:状态模式
摘要:声明:转载请说明来源:http://www.cnblogs.com/pony1223/p/7518226.html 一、引出状态模式 假设我们现在有一个糖果机项目,那么我们知道正常一般糖果机提供给用户的行为有这么几种:投入硬币、转动曲柄、退出硬币几种行为;那么糖果机呢一般有这几中状态,待机状态、持有 阅读全文

posted @ 2017-09-13 23:02 pony1223 阅读(16475) 评论(6) 推荐(8) 编辑

重构改善既有代码设计--重构手法02:Inline Method (内联函数)& 03: Inline Temp(内联临时变量)
摘要:Inline Method (内联函数) 一个函数调用的本体与名称同样清楚易懂。在函数调用点插入函数体,然后移除该函数。 int GetRating() { return MoreThanfiveLateDeliverise() ? 2 : 1; } bool MoreThanfiveLateDel 阅读全文

posted @ 2017-09-12 23:17 pony1223 阅读(1758) 评论(0) 推荐(0) 编辑

重构改善既有代码设计--重构手法01:Extract Method (提炼函数)
摘要:背景: 你有一段代码可以被组织在一起并独立出来。将这段代码放进一个独立函数,并让函数名称解释该函数的用途。 void PrintOwing(double amount) { PrintBanner(); //print details Console.WriteLine("name:"+_name) 阅读全文

posted @ 2017-09-12 23:07 pony1223 阅读(781) 评论(0) 推荐(0) 编辑

本周总结-20170912
该文被密码保护。

posted @ 2017-09-12 08:08 pony1223 编辑

httpclient 学习
摘要:Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性,它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很 阅读全文

posted @ 2017-09-03 22:33 pony1223 阅读(1746) 评论(1) 推荐(0) 编辑

JAVA中反射机制六(java.lang.reflect包)
摘要:一、简介 java.lang.reflect包提供了用于获取类和对象的反射信息的类和接口。反射API允许对程序访问有关加载类的字段,方法和构造函数的信息进行编程访问。它允许在安全限制内使用反射的字段,方法和构造函数对其底层对等进行操作。 二、java.lang.reflect AccessibleO 阅读全文

posted @ 2017-09-03 18:15 pony1223 阅读(11100) 评论(0) 推荐(1) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示