自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 问答 (1)
  • 收藏
  • 关注

原创 Android进阶练习一

1、有序广播: https://github.com/wuzhuojun/BroadcastExample说明: 在manifest.xml设置的广播是静态注册,只要软件安装在手机上广播就能够生效。 用代码实现的是属于动态注册,只有软件启动后广播才能够生效。 除了能够接收系统的广播,也能够自定义广播。Android的广播按照接收顺序分两种类型:无序广播和有序广播。 无序广播是所有注册者都能

2016-08-30 23:02:01 324

原创 状态模式

我们开发项目的过程中通常会碰到一种需求,某个对象包含多种状态变化的可能性,随着状态的变化行为也执行不同的动作。以电梯来举例: 电梯最基本具备 开门、关门、上下走动、停止 这四种状态。状态与状态之间有约束的关系,比如只能在关门的情况下才能走动。 所以用传统面向过程的解决方案,就必须要用状态值来标记每一种状态,然后用多个if else语句来判断状态的执行顺序,每当增加一个新状态的时候就需要重新修改代

2016-08-29 13:44:55 389

原创 命令模式

背景简介: 开发软件,项目划分几个小组:需求组,美工组,代码组。 开发流程,客户提出需求=》需求分析=》美工设计界面=》写代码实现功能//项目小组抽象类public abstract class Group{ public abstract void find(); public abstract void add(); public abstract void de

2016-08-29 13:44:12 338

原创 装饰模式

装饰模式可以给我们很好的帮助,通过装饰模式重新封装一个类,而不是通过继承来完成, 简单点说,三个继承关系 Father,Son,GrandSon 三个类,我要再 Son 类上增强一些功能怎么办? 我想你会坚决的顶回去!不允许,对了,为什么呢?你增强的功能是修改 Son 类中的方法吗?增加方法吗 ? 对 GrandSon 的影响哪?特别是 GrandSon 有多个的情况,你怎么办?这个评估的工作

2016-08-29 13:39:03 319

原创 访问者模式

访问者模式最常用的使用场景是统计功能(报表)、数据过滤功能(拦截器)、或者结合别的模式来使用(状态模式、代理模式等) 我们以统计功能举例来说明访问者模式的使用核心是,分两个模块 一个模块负责数据的产生 一个模块负责遍历数据,展示数据。我们先看下在不使用访问者模式的情况下的数据展示处理//员工public abstract class Employee{ private int se

2016-08-26 14:41:12 1129

原创 《无间道》观察者模式

电影无间道很多人都看过,讲的是关于黑社会与警局卧底的故事。 我们今天就聊一下无间道和面向对象的观察者模式到底有什么关系。//被观察者public interface Observable{ void notifyEverybody(); //通知所有人}//曾志伟 扮演的 黑社会老大 韩琛public class HanLaoda implements Observable {

2016-08-25 14:01:14 539

原创 PHP结合Linux的cron命令实现定时任务

PHP死循环 来处理定时任务的效率是很低的。(众多网友评价) 大家都建议使用Linux内置的定时任务crontab命令来调用php脚本来实现。PHP定时任务的两种方法: 1、web方式调用php网页,但是这样存在安全问题,外部用户同时也可以调用此文件。*/1 * * * * /usr/bin/wget -q -O temp.txt http://wan.coolxap.cn/cron2、用ph

2016-08-22 23:09:35 418

原创 架构设计的演变历程

1、无框架结构,直接调用底层API以往是底层平台(操作系统)提供API让上层APP去调用。这样的软件控制权在APP上。举例 APP调用了平台的函数 Fun1,那么平台要对Fun1进行维护不敢随意改变这个函数,系统的更新成本大,上层APP越多,维护成本越大,导致到平台被局限。2、单层框架结构为了让系统开发者取得控制权,后来架构师们建造了一种框架结构。APP开发者在这个框架的结构基

2016-08-21 18:36:46 587

原创 漫谈项目设计&重构&性能优化

重构的好处:重构能够改进软件设计,随着项目需求的变更,项目体积的变大早已与最初的设计大相径庭,代码结构变得凌乱、复杂,如果不进行重构,则很难添加新的功能。1、使项目代码更容易理解很多情况下是由于项目赶进度和不注重质量导致的。那么通过重构可以帮助代码维持自己该有的形态。项目开始的时候,设计并没有考虑到方方面面,因为你不可能预测到后面的所有需求。同时你也不能把每个功能都做预留,做成

2016-08-20 09:10:42 1086

原创 种一棵树最好的时间是十年前,其次是现在。

前言:最近经常被朋友问到的两个问题。 问题一: “从事IT工作3年了,做技术好累啊,是不是做到30岁就不能继续往下做啊?” 问题二: “我已经30岁了,还能不能学编程?”我给出的答案是: 只要你兴趣还在,可以一直做,什么时候都不会晚; 种一棵树最好的时间是十年前,其次是现在。本人目前在IT行业工作了6年,做过大大小小的项目,虽然跟网上那些大牛比还差很远。 但也确实经历过同样

2016-08-07 15:30:33 1700

原创 Android从入门到放弃4-Service

前面说到了四大组件中的Activity,今天说一下Service。 四大组件都是由Android系统底层调用的,他们都是继承于各自的基类。 如你所写的MyActivity是继承于Activity,MyService继承于Service。Google当初这么设计的原因在于,把系统核心的部分进行抽象,具体的部分由应用开发者来填补,这样能满足不同的业务场景下的系统构建。 从哲学来说是留空,空就是一切

2016-08-07 13:08:41 420

原创 Android从入门到放弃3-线程

Android更新UI元素的由主线程来处理,工作线程只能做逻辑运算处理,处理好之后通过Handler发Message给主线程。 主线程启动后会建立一个 loop 对象,一直在跑循环,定时检查 MessageQueue,取出Message 进行界面更新。Google这样设计的目的在于让主线程不需要处理线程安全问题,不需要加解锁,大大提高了APP的性能。 这和windows PC开发的机制是一样。如果

2016-08-06 21:34:51 255

原创 android从入门到放弃2--ButterKnife

Project gradler 设置:classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'Module gradler 设置:添加的库apply plugin: 'android-apt'compile 'com.jakewharton:butterknife:8.1.0'apt 'com.jakewharto

2016-08-05 09:02:41 442

原创 android从入门到放弃1--Activity&Fragment

Activity 启动另外一个 Activity 需要用 Intent,中文翻译过来是意图,你想要启动那个Activity 这就是你要表达的意图。Fragment 中文的意思是碎片,用它来做屏幕适配,或者界面复用。一个Fragment可以放到 多个 Activity上使用。启动它的其中一种方式就是 在 Activity的布局元素 FrameLayout 来替换为

2016-08-04 23:47:21 330

原创 Android从入门到放弃系列--目录

最近接手Android项目,做了一些练习,包括使用到的第三方开发组件。以下是该系列的文章目录,后面会逐一补齐。1、fcode1Activity 与 Fragment的练习2、fcode2butterknife 注解的使用gradle设置:classpath 'com.neenbedankt.gr

2016-08-04 23:44:13 2089

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除