- 浏览: 33289 次
- 性别:
- 来自: 广州
最新评论
-
kensunhu:
阐述相当完整,例子非常精彩。就是类图不见啦。
java——状态模式(state pattern) -
jay.zhong:
师兄威武!
thinking in java 学习笔记2 -
wangen2009:
...
thinking in java 学习笔记2 -
abcxo:
谢谢,你是第一位回复的人,让我觉得人生充满了希望,多谢
thinking in java 学习笔记5 初始化与清理 -
ycq__110:
加油,童鞋,前途大大的
thinking in java 学习笔记5 初始化与清理
文章列表
第十三章 字符串
String我平时进行得最多的东西,可以证明,字符串操作是计算机程序设计中最常见的行为
尤其在web中,这个也是可以想象的,所以要学好
.不可变String
String对象不可变,每个看起来会修改String值的方法,实际上都是创建了一个全新的String 对象,以包含修改后的字符串的内容,而最初的String则丝毫未动
.重载“+”与StringBuilder
String对象可以加任意多的别名,String对象具有只读特性,任何引用都无法改变它的值,这就代来了一个问题,当使用+的时候,无疑是生成许多个Str ...
第十二章 通过异常处理错误
在以前平时的编程中没有真正意思到异常处理的强大,只从有一个android的图片过大,内存溢出,使用了异常处理才得以解决问题,我对异常处理的一个大概可以用一句话来表达:就是让 ...
第十一章 持有对象
因为最近太多事情忙了,导致没时间写blog了,不过基础知识还是不能丢下的,所以要加油,希望和我一起学java的同学也能坚持下去
这一章所介绍得内容就是我们平时常用的数据结构。例如表,图,栈,队列什么的,在数据结构中这些都需要我们自己去编写,但是在java或者可以说在许多语言中,为了方便我们的工作,都封装成了易用的工具类
.为什么要引入这个概念
在我们的编程中,往往是根据运行时才知道的某些条件去创建新对象,若需要再任意时刻,创建任意数量的对象,紧靠命名的引用是无法解决问题的,例如数组可以帮我们持有对象,但是若编写时不知道需要的对象数 ...
第十章 内部类
这一章听说在其他的书籍中占的份额不大,也就是说不重要,但是在tij这本书里面,份额挺大的,老师也说了,重要,我个人看了下内容,的确是很重要,为你的实现代码低耦合再上一个层次,或者 ...
5.适配器模式(Adapter pattern)
适配器模式我个人也接触得比较多,在android里面使用的比较多的模式是,为list提供adapter,然后android中规定了baseadapter(这是一个抽象类),故若要写自己的adper,所以就要继承这个类,从这一点也可以看出有时候类比接口好,呵呵,在书中我们提到了一个问题,当遇到我们不能修改我们要使用的类的时候,我们应该怎么做来使用它的接口呢
???这时候就需要适配器模式,就是将你的接口转化成他所要求的接口
在书上的例子还用到了代理哦
书上是这样写的
class Fi ...
4.策略模式(Strategy pattern)
策略模式我个人觉得自己平时用得很多,怎么说呢,其实策略模式也就是多态,测试类(主类)的方法传入的参数对象定为接口,然后传入不同的对象(实现了该接口的),然后在里面调 ...
第九章 接口
不可否认,我们开始了难啃的骨头的一部分,对于接口,其实也就是那些东西而已,没什么问题,弄一下就熟了
好,废话不多说,开始吧
接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法
其实这种机制在编程语言中不通用,c++只是间接支持,不过在java中,他们是非常重要的思想
.抽象类与抽象方法
抽象类其实它是普通类与接口之间一种中庸之道,在使用时,可能一开始你就想用接口,但是事实是,抽象类很重要且必须.创建抽象类希望可以通过这个通用的接口操纵一系列的类.
包含抽象方法的类叫做抽象类,如果一个类包含一个或者 ...
3.状态模式(state pattern)
状态模式实现的代码不复杂,不过难的是不知道什么时候用上
书上写得很简单
一个基类actor
两个继承类 happyactor,sadactor
一个状态类 里面实例化了对象actor,change()里面改变实例化的对象,从而改变了对象
测试类,使用stage.play(),这是开心的演唱,使用stage.change()后,因为对象改为了
sadactor,所以当使用相同的stage.play(),得到的效果是伤心的哭
通过状态的改变来改变行为,这一期间获得了动态灵活性
...
2.工厂模式(factory)
书上所写的例子是简单工厂模式
写了一个基类 shape
写了两个子类继承shape。分别是circle和triangle
写一个工厂类,专门负责new 那两个子类
然后在测试类main方法里面调用工厂类,通过传入的参数,就可以分别创建两个对象了
好处:对象的创建细节进行封装,使客户端避免负责接触对象创建,将低耦合性,集中管理对象创建,客户端可以专心负责自己的事情.
其余两种工厂模式,是进一步抽象,详细请看下面
注:java各种工厂 ...
第八章 多态
java3个核心的概念:封装,继承,多态,,作用还是高内聚,低耦合
在前面的章节里面我们介绍了封装和继承,这一章我们介绍多态
多态通过分离做什么和怎么做,从另外一个角度讲接口与实现分离 ...
第七章 复用类
对于java而言,很重要的都是在讨论复用,高内聚,低耦合,其中复用是我们平时接触的比较多的一大块,先说一下我个人的代码变化,刚开始时复制别人的代码,然后是复制修改,接着是自己写的大部分,部分复制,后来就是参考别人,衍生出自己要的东西,现在就是写成模块,然后自己用的舒服,提供接口这样,这里少不了代码的复用性
.复用的方法
1.组合:在新的类中产生现有类的对象,直接让这些现有的对象为新类服务
2.继承:在现有类中添加新的方法,无需改变现有类
3.代理:把一个成员对象于新类中(组合,has-a),但是在新类中编写方法暴露该成 ...
1.单例模式(singleton)
例如:
class Soup1{
private Soup(){}
public static Soup1 makeSoup(){
return new Soup1();
}
这个不是单例模式,这个是对象受限创建,只需要简单的加入一下判断,即可是对象创建控制在需要的范围内,
例如
class Soup1{
private Soup(){}
private static int i;
public static Soup1 makeSoup(){
if(i< ...
第六章 访问权限控制
问题:如何把变动的事物与保持不变的事物区分开来
我们这一章主要的目的要实现高内聚,低耦合,保持提供给客户端开发者的接口不变,但是里面可以变,这里的接口不变,指你的低耦合性 ...
第五章 初始化与清理
今天是清明长假的第一天,看了自己的博客,人很少,呵呵,我想这和我第一次发布应用的情况也是一样的,但是我相信这一点随着自己的深入研究,自然会多起来,就我个人而言,第五章是这本书有趣的开始,有很多知识是我之前没有去碰过的,当然这些基础知识也相当重要,这让我想起了自己当时去面试,连很多基础的问题都不懂得回答,哎,所以说基础还是非常重要的.
好吧,看看今天有什么内容
.不安全编程
在许多c程序员忘记初始化变量,或者在使用程序库后,不记得清理,导致了元素占用一直没有释放,所以资源耗尽,导致程序出错,在java这边,很好的解决 ...
第四章 控制执行流程
老师说得对,第十章以后的那些才是难啃的骨头,对我来说,日子真的过得很快,希望可以在剩下的一年里面得到些东西,不知道自己坚持的是否正确,但是相信没有耕耘就没有回报,坚持每天一章书.
这一章是应该是每种语言都必须具备的,java也不例外,对于我来说,java和c++这里是差不多的,java取消了那个万恶的goto语句,还有多了一个foreach,下面我们来慢慢分析
.for迭代
for(int i=0;i<100;i++){}
这里的变量i是在测下用到它的地方定义的,也就是for循环控制里面,c的作用域就是fo ...