自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

C虾仔

?!

  • 博客(57)
  • 收藏
  • 关注

原创 C虾仔笔记 - 中介者模式

中介者模式将多个形成网状结构、存在大量关联关系的对象,进行解耦,用一个中介对象来封装它们的交互而形成网状结构。实例:MVC框架中,C就是M和V的中介者。Android中的KeyguardViewMediator。...

2018-06-15 23:37:26 170

原创 C虾仔笔记 - 访问者模式

访问者模式将稳定的数据结构和易变的操作分离(解耦)。将数据结构封装为被访问者,数据操作封装为访问者。在被访问者的类里面加一个对外提供接待访问者的接口。如果对数据结构中的对象进行很多不同的并且不相关的操作,而且不想让这些操作"污染"这个数据结构;或者遍历一个存有不同类型对象的数据结构,就考虑是否要使用访问者模式。如果不用访问者模式,又想对不同的元素进行不同的操作,很可能要使用if-else和类型转换...

2018-06-15 16:56:27 141

原创 C虾仔笔记 - Servlet基础(认识)

Servlet(Server Applet)——服务端小程序运行在服务器上的一段Java小程序。根据客户端提交的请求,调用服务器的相关Java代码,来完成对请求的处理与运算。Servlet生命周期(常用的四个可控点)[实例化]→[初始化]→[服务]→[销毁]1)创建Servlet对象;2)对Servlet进行初始化操作,以便下个阶段执行服务;3)服务是最核心的部分,需要的对象可在初始化阶段完成;4...

2018-06-11 22:47:49 158

原创 C虾仔笔记 - 模板模式

模板模式构建一个算法框架,将某些可能会变的步骤延迟交给子类中实现。使得子类在不改变这个算法框架的前提下,实现该算法矿建中会变的步骤。封装不变部分,扩展可变部分。提取公共代码,便于维护行为由父类控制,子类实现。因此,有多个子类共有的方法,且逻辑相同。重要的、复杂的方法,可考虑作为模板方法。注意,为防止恶意操作,模板方法可考虑加上 final 关键字。实例:AsyncTask对象调用execute方法...

2018-06-10 22:19:58 136

原创 C虾仔笔记 - 迭代器模式

迭代器模式提供一种方法顺序访问一个集合对象中各个元素, 又无须暴露该对象的内部表示。把在元素之间游走的责任交给迭代器,而不是集合对象。分离了集合对象的遍历行为,抽象出一个迭代器类来负责遍历行为。这样既不暴露集合的内部结构,又让外部代码透明地访问集合内部的数据。实例:用来遍历数据查询结果的Cursor游标对象。...

2018-06-10 21:32:49 152

原创 C虾仔笔记 - 备忘录模式

备忘录模式在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便在必要时恢复对象的这些状态。要实现了信息的封装,使得用户不需要关心状态的保存细节。给用户提供了一种可以恢复状态的机制,允许用户取消不确定或者错误的操作,使用户能够比较方便地回到某个历史的状态。但是要消耗资源,特别是成员变量比较多的情况。为了节约内存,可使用原型模式+备忘录模式。实例:Activity中的onSa...

2018-06-10 20:55:07 139

原创 C虾仔笔记 - 观察者模式

观察者模式对象间存在一对多关系。当一个对象发生改变时,则所有依赖于它的对象都会得到通知并被自动更新。该模式易用和低耦合,保证高度的协作。一般用ArrayList 来存放观察者们。在该触发机制中,观察者和被观察者是抽象耦合的(低耦合)。但是,如果观察者太多的话,也会显得比较耗时。为了避免观察者出错会导致系统卡死,观察值一般采用异步方式执行程序。实例:ListView与Adapter(notifyDa...

2018-06-10 19:08:13 139

原创 C虾仔笔记 - 命令模式

命令模式请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该相应的对象执行命令。(调用者→接受者→命令)抽象出待执行的动作,然后以参数的形式提供出来,用不同的请求对客户进行参数化。类似于过程设计中的回调机制。用于在不同的时刻指定、排列和执行请求;需要支持取消操作;需要支持事务处理操作。实例:PackageManagerService实现...

2018-06-10 18:33:14 124

原创 C虾仔笔记 - 解释器模式

解释器模式将复杂的文法规则分离为简单的功能进行解释,将其组合成一颗抽象语法树进行解释执行。通常采用递归调用方法进行解释。易于实现简单文法,难以维护复杂文法。实例:1、PackageParser与AndroidManifest.xml。2、SQL解析。3、计算器符号处理。...

2018-06-10 17:46:13 109

原创 C虾仔笔记 - 状态模式

状态模式让一个对象在其内部状态改变时,其行为也随之改变。不同的状态有不同的行为。这些行为是平行的、不可替换的,被包装在不同状态对象中。将所有与某个状态有关的行为放到一个类中,并且可以方便地增加新的状态,只需要改变对象状态即可改变对象的行为。可以将状态转换逻辑与状态对象合成一体,替代了某一个巨大的条件语句块。在行为受状态约束的时候使用状态模式。实例:Android中的WiFi管理。...

2018-06-10 16:55:56 129

原创 C虾仔笔记 - 策略模式

策略模式定义了一系列算法(行为),并挨个将算法封装起来,使它们在运行时可以动态更改。在使用if-else语句感觉复杂和难以维护时,将这些算法封装成类。这样,算法可自由切换,避免用多重条件判断,扩展性较好。实例:Android动画中的 TimeInterpolator和布局中的LayoutManager。...

2018-06-10 16:22:16 118

原创 C虾仔笔记 - 原型模式

原型模式一个以已经存在的对象为原始样板来创建新对象的模式。“克隆”创建复杂或构造起来比较耗时的实例时,复制一个已经存在的对象可为程序节省资源,让程序运行流畅些。实例:Intent。...

2018-06-05 23:21:28 148

原创 C虾仔笔记 - Builder模式

Builder模式将构建复杂对象的过程和它的部件解耦,使得该对象的构建过程和部件的表示隔离开来。实例:AlertDialog。

2018-06-05 22:01:46 123

原创 C虾仔笔记 - 单例模式

单例模式保证一个类仅有一个实例,该类自行实例化并向整个系统提供该实例。若创建某个对象要消耗大量资源,可考虑使用单例模式。实例:(1)LayoutInflater.from(Context)(2)ImageLoader.getInstance()...

2018-06-04 22:38:56 148

原创 C虾仔笔记 - 责任链模式

责任链模式链式结构的每个节点都能被拆开在连接,具有较好的灵活性。将链式结构的节点看作对象,每个对象拥有不同的处理逻辑,讲一个请求从某个节点出发,沿着连式结构的某一个方向的路径,传递给下一个邻近的节点对象,直到这个请求某个节点对象被处理为止。实例:Android应用对事件的分发处理。每当用户触屏时,对应的事件被Android包装成事件对象,从上往下有从下往上分发传递,直到这个事件被处理为止。...

2018-06-03 22:14:34 136

原创 C虾仔笔记 - 组合模式

组合模式:将对象组合成树形结构,表现为”部分-整体“、“内容-容器”的层次结构,使得客户能以一致的方式处理组合的对象。同族化的成分(Component):为所有组合的对象提供统一的接口。原子性的叶子(Leaf):在组合中表示末端的子节点对象,不能延伸出其他节点。使合成的树干(Composite):在组合中表示可容纳、延伸的所有其他节点。                               ...

2018-06-03 17:04:10 128

原创 C虾仔笔记 - IOC反转控制(DI依赖注入)思想

IOC【Invertion of Control控制反转】DI【Dependency Injection依赖注入】例子:Spring框架。

2018-03-18 22:36:45 134

原创 C虾仔笔记 - 在Eclipse中编写测试类

测试某个类的功能①生成测试类对着左侧管理器中的目标类按右键→【New】→【JUnit Test Case】...配置...勾选测试的目标方法→【Perform the following action】→【OK】→【Finish】。最后生成文件在目标类的所在文件夹中,可以拖动到一个事先创建好的test文件夹中,集中管理。②运行测试类对着测试类按右键→【Run As】→【JUnit Test】。...

2018-03-18 18:01:46 1556

原创 C虾仔笔记 - 面向对象编程和面向接口编程

面向对象编程实体类——model/entity/po例如User类。管理实体的类——service例如UserService类。管理数据库的类——dao例如UserDAO类。三者的关系,比如调用UserService的添加User的方法,并通过UserDAO和User向数据库中保存User类实体的信息。面向抽象编程(面向接口编程)将上面的管理数据库的类改为接口——dao例如UserDAO接口。管理...

2018-03-18 17:01:58 180

原创 C虾仔笔记 - SeekBar拖动条

■SeekBar拖动条1.概述:拖动条控件通过拖动进度条滑块的方式来控制某个流程的进度,同时也能直观地显示进度。2.属性:除了继承ProgressBar的属性,还允许改变外观——thumb属性将指定的Drawable对象作为自定义滑块。3.应用:播放器(播放进度、音量大小、屏幕亮度等),阅读器的阅读进度等。...

2018-03-07 23:59:15 159

原创 C虾仔笔记 - ProgressBar

■ProgressBar进度条概述:以图像化的方式显示某个过程的进度。属性:应用:下载进度、加载进度、完成进度。

2018-03-07 23:59:07 146

原创 C虾仔笔记 - JDK的安装与配置

安装JDK下载——网址:http://www.oracle.com/index.html注意:1.如果电脑系统类型是32位就不要下载64位的安装包。(在路径为“控制面板\所有控制面板项\系统”中可以看到系统类型。)2.安装目录要记住,默认安装路径为:“C:\Program Files\Java\jdkxxx\”。配置环境变量对 [ 我的电脑/计算机 ] 窗口的空白处右键→【属性】→【高级系统设置】...

2018-03-01 23:29:48 158

原创 C虾仔笔记 - 重置MySQL密码(Windows)

重置MySQL密码(Windows)错误:1045 - Access denied for user 'root'@'localhost'(using password:YES)再另外启动一个窗口:或update user set password=PASSWORD("111")where user="root";最后又另外启动一个窗口:update user set password=PASSW...

2018-03-01 23:25:28 163

原创 C虾仔笔记 - Eclipse的使用[JavaWeb](一)

Eclipse的使用[JavaWeb](一)创建工作空间(workspace)工作空间就是存放工程项目的文件夹。(1)初次使用Eclipse时,会进入创建工作空间的页面,输入或选择目标目录即可。(2)【File】→【Switch Workspace】→【other】→输入或选择目标目录即可。显示工程浏览器(Project Explorer)展示当前工作空间的所有工程项目浏览视图框,通常在编辑页面的...

2018-02-28 18:41:28 137

原创 C虾仔笔记 - Eclipse的使用[JavaWeb](二)

Eclipse的使用[JavaWeb](二)建立Servers服务功能模块Servers是用来加载和管理本机安装的服务器(比如Tomcat)。为Eclipse中创建的项目提供运行环境,并可以对外提供访问。显示Servers窗口通常在编辑区的下方显示。①【Window】→【Show View】→【Servers】。②【Window】→【Show View】→【Other】→【Server】→【Ser...

2018-02-28 18:39:51 264

原创 C虾仔笔记 - Eclipse的使用[JavaWeb](三)

Eclipse的使用[JavaWeb](三)创建动态网页项目1)在工程浏览窗口的空白处对鼠标按右键,【New】→(【Project】/【Dynamic Web Project】若存在就点击)【Other】→【Web】→【Dynamic Web Project】→【Next】;2)接着,给项目命名,添加服务器→【Next】;3)然后,指定默认输出文件夹,通常默认直接点【Next】;4)勾选【Gene...

2018-02-28 18:38:48 148

原创 C虾仔笔记 - Eclipse的使用[JavaWeb](四)

Eclipse的使用[JavaWeb](四)web.xml项目的启动文件。位置:【WebContent】→【WEB-INF】→web.xml。浏览模式:打开文件后,在文件显示窗口左下方可看到如下两个按钮。①【Design】:只查看。②【Source】:可编辑。基本修改:确定默认首页:(若默认index.jsp,则修改如下) <welcome-file-list> <welcom...

2018-02-28 18:37:13 142

原创 C虾仔笔记 - Button按钮

■Button按钮概述:继承TextView,可供用户点击以处理事件。         低版本的点击效果看起来貌似并不受欢迎,5.0版本以后出现的涟漪效果还可以。         目前开发中,大多数人都喜欢用TextView作为按钮来替代Button,也可以避免一些不必要的监听冲突。...

2018-02-28 18:06:19 138

原创 C虾仔笔记 - CheckBox多选按钮

■CheckBox多选按钮1.概述:作为可选中又可恢复未选状态的按钮,自然更符合人性化。2.应用:多选爱好,多选照片等。3.默认选中:android:checked="true"如图:4.动态选中:cbFruitsApple.setChecked(true);5.判断是否选中:boolean isCheckedApple = cbFruitsApple.isChecked();6.监听选中:cbF...

2018-02-24 23:06:18 225

原创 C虾仔笔记 - ImageButton图片按钮

■ImageButton图片按钮概述:具备了ImageView属性的按钮,         插入图片的位置处理功能比Button的多样。         但是不能像Button一样具备显示文字的效果,         除非文字在图中(也不能更改图中固定的文字,除非换图)。         目前开发中,大多数人都喜欢用ImageView作为按钮来替代ImageButton,也可以避免一些不必要的监听...

2018-02-24 23:06:13 221

原创 C虾仔笔记 - ListView列表视图

■ListView列表视图1.概述:以垂直列表的形式显示所有列表项。            由于RecyclerView覆盖了ListView所有常用功能,甚至相比有更灵活的扩展性。            因此,能使用RecyclerView的话,就很少有人使用ListView了。2.两种实现方式:       (1)ListView作为Activity里层控件(普通方式创建,最常见)      ...

2018-02-23 21:44:00 197

原创 C虾仔笔记 - RelativeLayout相对布局

■RelativeLayout相对布局1.概述:相对布局中的子控件的位置是相对其他子控件和父控件(父容器)来决定的。             由于它提供的功能比较多,可以摆出很复杂的布局。             默认情况出现多个子控件的话,就都重叠于左上角,效果如同FrameLayout。2.属性:    gravity  setGravity(int) ; ignoreGravity  set...

2018-02-23 21:33:10 365

原创 C虾仔笔记 - GridLayout网格布局

■GridLayout网格布局1.概述:Android4.0新增的以网格形式排布子控件的布局管理器。            若想在更早版本的系统上使用它,则要导入相应的支撑库。            与LinearLayout相似,也有布局方向,默认是水平布局挨个排列。            实现GridLayout的效果,也可以用LinearLayout和TableLayout替代(不推荐)。2...

2018-02-23 21:26:32 271

原创 C虾仔笔记 - TableLayout表格布局(TableRow表格行)

■TableLayout表格布局(TableRow表格行)1.0概述:采用行和列的形式管理子控件。              本质是垂向的线性布局(会继承了相关的属性)。              只要添加TableRow和子控件就可控制表格的行数和列数,不用声明多少行列。              一行只有一个TableRow对象或一个View对象占用(一个其他View也可以占一行)。     ...

2018-02-23 21:19:36 1804

原创 C虾仔笔记 - HorizontalScrollView水平滚动视图

 ■HorizontalScrollView水平滚动视图概述:顾名思义,添加到其中的子控件在水平方向上无限制摆放。由于RecyclerView的出现,现在很少人使用它了。应用:用于连贯的、需要滚动的完整大界面。...

2018-02-23 21:17:37 168

原创 C虾仔笔记 - LinearLayout线性布局

■LinearLayout线性布局1.概述:将其内的控件挨个按一定方向(水平或垂直)来排列,            不会自动换行而多了会溢出界面。            默认情况各个子控件水平挨个排布(从左上角开始)。2.其的属性:    (1)排列方式(子控件排布方向)            属性:orientation——方法:setOrientation(int)——属性值:horizont...

2018-02-23 20:53:12 149

原创 C虾仔笔记 - SearchView搜索框

■SearchView搜索框1.概述:能让用户在文本框内输入文字,并允许通过监听器监控用户输入。            当用户输入完成后提交搜索时,也可通过监听器执行实际的搜索。            低版本API的SearchView可能并不符合某些UI设计师的外观要求。            如果对它要求较高,完全可以采用EditText和TextView自己实现。2.方法:         ...

2018-02-23 20:45:20 161

原创 C虾仔笔记 - FrameLayout帧布局

■FrameLayout帧布局1.概述:为每个子控件创建一个子控件大小的空白区域,一个区域称为一帧,      多个区域的话,以后来者居上呈现,也就是说最后添加的子控件显示在最上层。             默认情况多子控件重叠于左上角。             由于它的属性稀少,很难满足复杂的需求。             能用RelativeLayout就不推荐用FrameLayout。2.其...

2018-02-23 20:43:51 192

原创 C虾仔笔记 - RadioGroup单选按钮组

■RadioGroup单选按钮组1.概述:一组单选按钮的组合。2.特点:(统一监听处理)    1).其中单选按钮相互排斥,只能一个被选中(true)。    2).可取消当前被选中的单选按钮,点击其他单选按钮即可。3.应用:当前,只能选择一种的情况(多选一)。          比如,性别,非男即女,非女即男(目前都是这样,以后可能就不是这样了)。4.监听方法——做法1:/** * 设置地图显示...

2018-02-22 19:14:51 247

原创 C虾仔笔记 - ScrollView垂向滚动视图

■ScrollView垂向滚动视图1.概述:用于为其他控件添加滚动条而生成垂直滚动样式效果的滚动视图。   只能包含一个控件,经常被用来包含一个布局。2.功能:虽不能被称为真正的容器,但它能为所包裹的容器View(甚至非容器的)添加垂直滚动条。          默认情况,它只添加垂直滚动条;若同时要添加水平滚动条,就要先包裹horizontalScrollView。3.优点:即使内容超出了屏幕大...

2018-02-22 19:02:26 195

空空如也

空空如也

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

TA关注的人

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