代码改变世界

简单工厂模式(静态工厂方法模式)【设计模式】

2015-06-14 21:00 by ttylinux, 342 阅读, 0 推荐, 收藏, 编辑
摘要:定义:提供一个创建实例的功能,客户端使用者无需关心实例的具体实现。被创建实例可以是接口、抽象类,也可以是具体的类。它又称为静态工厂方法(Static Factory Method)模式简单工厂模式的作用,优点:为客户端屏蔽所需要的实例的具体实现,客户端只需关注某个接口便可,无需关注实现。具体实现被封... 阅读全文

Long Parameter List(过长参数列)---要重构的味道

2015-06-14 16:51 by ttylinux, 1200 阅读, 0 推荐, 收藏, 编辑
摘要:一个函数,它的参数过多是不好的,不好维护和修改,易读性也差,容易出错。 消除过长参数的方法,有如下: 1.在面向对象中,你可以传递一个对象给函数,函数通过访问对象来获得参数。也就是,对象里面了包含参数需要的多个参数。 2.函数通过访问函数所在类的成员变量,或者其它函数来获取原来要传入的... 阅读全文

观察者模式【设计模式】

2015-06-12 23:06 by ttylinux, 321 阅读, 0 推荐, 收藏, 编辑
摘要:The observer pattern is a software design pattern in which an object, called the subject, maintains a list of its dependents, called observers, and no... 阅读全文

Large Class--过大的类--要重构的信号

2015-06-11 06:57 by ttylinux, 930 阅读, 1 推荐, 收藏, 编辑
摘要:如果想利用单个类做太多事情,其内往往就会出现太多实例变量。一旦如此,Duplicated Code也就接踵而至。解决方法:1.将类内彼此相关的变量,将它们放在一起。使用Extract Class手法,将彼此相关的变量提炼到新的类。2.如果1中的新类适合作为一个子类,那么可以使用Extract Sub... 阅读全文

过长的函数---要重构的信号

2015-06-07 21:40 by ttylinux, 1334 阅读, 1 推荐, 收藏, 编辑
摘要:这个,我经常发现做开发的同事的代码,出现这个问题。"但是让小函数容易理解的真正关键在于一个好名字。如果你能给函数起个好名字,读者就可以通过名字了解函数的作用,根本不必去看其中写了些什么。“-----------起个好名字,看名字知道函数的作用。在需要的时候,比如,调试,检查Bug,这时候,才需要查看... 阅读全文

从零开始开发一款app,所想到的

2015-06-06 18:11 by ttylinux, 270 阅读, 0 推荐, 收藏, 编辑
摘要:我在知乎上看到这个问题http://www.zhihu.com/question/27645587。我在阅读了各位大牛的答案后,再加上自己的思考,就有了这篇文章的内容。从零开始开发一款app,要做这些事情:1.确定编码规范---Code Style。这个可以直接参考规范https://google-... 阅读全文

重复代码Duplicated Code---要重构的信号

2015-06-01 23:07 by ttylinux, 1129 阅读, 0 推荐, 收藏, 编辑
摘要:什么时候需要重构,当你在项目代码里面嗅到这个味道的时候,就要进行重构。首个介绍的味道是重复代码的味道。它表现出来的特征是这些:1.一个类里面,两个函数中,含有相同的代码,类似的代码;或者三个函数中,含有相同的代码,类似的代码。这是重复代码的味道。2.两个互为兄弟的子类内含有相同的表达式。这也是重复代... 阅读全文

获取数据源数据的实现---Architecting Android

2015-05-31 16:32 by ttylinux, 410 阅读, 0 推荐, 收藏, 编辑
摘要:UserRepository,这个接口,描述了Repository提供给用户的功能就是getUsers,getUser(ID)。用户只管使用,其它细节无需理会。/*** Interface that represents a Repository for getting {@link User} r... 阅读全文

例子Architecting Android…The clean way?----代码分析

2015-05-30 21:55 by ttylinux, 373 阅读, 0 推荐, 收藏, 编辑
摘要:Presention层:整个应用启动的时候,就执行依赖的初始化。编译项目之后,Dagger依赖框架使用ApplicationComponent生成一个DaggerApplicationCOmponent。1. 首先进行依赖的生成在Application中,调用initializeInjector()... 阅读全文

函数式编程--响应式编程 ---android应用例子

2015-05-28 21:21 by ttylinux, 1057 阅读, 0 推荐, 收藏, 编辑
摘要:RxJava implements this operator ascreate.It is good practice to check the observer’sisUnsubscribedstate from within the function you pass tocreateso t... 阅读全文