![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
重构
颠坤
一个菜鸟,努力成长中...
展开
-
重构之1.Duplicate Observed Data 复制被监视数据
场景: 如果业务层的内容被内嵌于界面层中,我们需要帮这分离出来 代码坏味道 MyFrame /** * * @author wumingkun * @version 1.0.0 * @Description */ package com.demo.refactor; import java.util.Observable; im原创 2014-08-08 22:43:29 · 1423 阅读 · 0 评论 -
重构之2.Replace Type Code with Class(以类取代类型码)
场景 在一个类中我们经常会下定义一些类型码,如: public static final int INVALID=0; public static final int VALID=1; 我们可以将这些数值转换为一个类 前提条件: 只有当类型码是纯粹数据时(类型码不会在Switch语句中引起行为的变化时),你才能以类来取代它 修改前原创 2014-09-10 23:13:08 · 1265 阅读 · 0 评论 -
重构之3.Replace Type Code with Subclasses(以子类取代类型码)
场景: 通常我们会在业务层判断类型码,执行不同的方法,可以使用子类来取代类型码 前提: 1.类型码不会被改变 2.类型码所属的类没有子类 修改前: Student: /** * @file Student.java * * * @author wumingkun * @versi原创 2014-09-11 22:26:38 · 1223 阅读 · 0 评论 -
重构之4.Replace Type Code with State/Strategy(以State/Strategy取代类型码)
场景: 你有一个类型码,它会影响类的行为,但你无法通过继承手法来消除它 ,可以使用状态对象取代类型码 类图: 修改前: Student /** * @file Student.java * * * @author wumingkun * @version 1.0.0 * @Des原创 2014-09-13 09:23:28 · 1338 阅读 · 0 评论 -
多路分发
何为多路分发: java只持单路分发,即如果要执行的操作包含不止一个类型未知的对象时, 那么动态绑定机制只能处理处中的一个类型, 如果需要处理两个类型,可以使用多路分发, 如果想使用两路分发,就必须要有两个方法调用: 第一个方法调用决定第一个未知类型, 第二个方法调用决定第二个未知类型 基于接口实现 Item package c原创 2014-10-29 22:30:51 · 1661 阅读 · 0 评论 -
引入模板模式重构FtpClientUtil
在《ftp上传与下载》文章中,封装一个Ftp上传下载的工具类,主要代码如下: 上传: /**上传文件 * @param remoteFileName 远程文件名称 * @param locaFileName 本地文件名称 */ public void upload(String remoteFileName,String locaFileName){ FTPCli原创 2015-01-22 21:04:05 · 1270 阅读 · 0 评论