- 浏览: 83823 次
- 性别:
- 来自: 北京
文章列表
敏捷软件开发
敏捷软件开发是一种面临迅速变化的需求快速开发软件的能力。
敏捷宣言:
1.个体和交互胜过过程和工具 团队沟通是很重要的
2.可以工作的软件胜过面面俱到的文档 软件无二义性
3.客户合作胜过合同谈判
4.响应变化胜过遵循计划 只为近期任务做详细计划,远期任务做粗略计划
通过迭代,每个人都知道将要做什么以及何时去做。其他人可以看到项目的进展。
测试驱动开发
重构
到底使用组合还是继承是每本讲设计的资料里都要讨论一番的话题,两者的目标都是为了实现代码复用。下面说说我对组合和继承的优缺点的理解。
继承缺点:
1.破坏封装性
1)继承所有接口:不管是自己想要的接口还是不想要的接口,统统继承过来,导致对外提供的服务混乱,不利于程序管理
2)父类子类紧耦合:在一些极端的例子中,父类和子类紧耦合,子类依赖于父类的实现细节,如effective java 中add和addAll的自用性的例子。另外父类的些许改变很容易影响到子类
2.很难拓展功能,会造成继承结构膨胀
对于继承来说,设计父类的功能已经不容易,因为需要考虑到所有子类的通用功能,一旦加入新的子 ...
Java访问控制private之我见
- 博客分类:
- java
最近待业在家,遂有空重新读了thinking in Java这本书,发现工作了几年,对访问控制有了更深的理解,这里专谈private关键字,想了一个例子,以记录自己的理解。
访问控制的原因有二:
1.避免客户端程序员触及他们不应该触及的部分
2.允许库设计者改变类内部工作方式而不担心影响到客户端程序员
下面分别对这两点进行解释,请看下面的代码。
public class Person
{
private int age;
public void setAge(int age) throws Exception
{
if(!validateAge(age))
...
女孩子该干什么
我的大学室友里有几个外国留学生。有一次,宿舍忽然跑水,我们几个女孩都叉着腰,小心翼翼地站在角落的砖头上给楼管打电话,只有她一个人挽着裤腿,光脚穿着橡胶拖鞋,泡在满屋子的脏水里……我们都 ...
什么叫工作,工作的意义?发人深思,自己做到了吗?
- 博客分类:
- 杂谈
当时公司招了大批应届本科和研究生毕业的新新人类。平均年龄25岁。那个新的助理,是经过多次面试后,我亲自招回来的一个女孩。名牌大学本科毕业,聪明,性格活泼。私下里我得承认,我招她的一个很重要的原因,除了她 ...
面向接口编程详解
2009-04-23 作者:张洋 来源:ZhangYang's Blog
本系列《面向接口编程详解》将分为三部分:
面向接口编程详解(一)——思想基础
在这一篇中,将对接口及面向接口编程有个大致的介绍,着重在于思想上的讲解。
面向接口编程详解(二)——编程实例
这一篇将结合一个实例“移动存储设备模拟”来让大家对面向接口编程有个直观印象。
面向接口编程详解(三)——模式研究
讲解几个设计模式中的面向接口思想和基于.NET平台的分层架构中的面向接口思想,加深理解。
面向接口编程详解(一)——思想基础
我想,对于各位使用面向对象编程语言的程序员来说,“接口”这个名词一 ...
浅析java回调机制与观察者模式
- 博客分类:
- java
1 java回调机制:
首先解释java回调机制,对象能够携带一些信息,这些信息允许它在稍后的某个时刻调用初始的对象,如果回调是通过指针实现的,那么就只能寄希望程序员不会误用此指针,java更小心仔细,所以没有在语言中包 ...
Java程序设计之-复合优先于继承
- 博客分类:
- java
组合
通过创建一个由其他对象组合的对象来获得新功能的重用方法
新功能的获得是通过调用组合对象的功能实现的
有时又叫聚合
例如:
一个对象拥有或者对另外一个对象负责并且两个对象有相同的生命周期。(GOF)
一个对象包含另一个对象集合
被包含对象对其他对象是不可见的并且只能从包含它的对象中访问的特殊组合形式
组合的优缺点
优点
1. 被包含对象通过包含他们的类来访问
2. 黑盒重用,因为被包含对象的内部细节是不可见的
3. 很好的封装
4. 每个类专注于一个任务
5. 通过获得和被包含对象的类型相同的对象引用,可以在运行时动态定义组合的方式
缺点
1. 结果系统可能会 ...
java学习之路(转)
- 博客分类:
- java
(一)
从事软件行业工作已经近7年了,实际Java开发也就是近4年.真正从怎么会用Eclipse开始学起. 问过同事一个对象为什么可以几个类共用 ...到现在4年后的今天,也不敢说Java学的有多好,相反觉得有很多东西要去学习. 只想就 ...
一、 定义
放在一个类的内部的类我们就叫内部类。
二、 作用
1.内部类可以很好的实现隐藏,也就是封装性。一般的非内部类,是不允许有 private 与protected权限的,但内部类可以
2.内部类拥有外围类的所有元素的访问权限
3.可是实现多重继承
4.可以避免修改接口而实现同一个类中两种同名方法的调用
1,概述
内部类是指在一个外部类的内部再定义一个类。
内部类作为外部类的一个成员,并且依附于外部类而存在的。
内部类可为静态,可用PROTECTED和PRIVATE修饰。(而外部类不可以:外部类只能
使用PUBLIC和DEFAULT)。
2,分类
成员内部类、
局部内部类、
静态内 ...
(1).所谓“局部内部类”就是在对象的方法成员内部定义的类。而方法中的类,访问同一个方法中的局部变量,却必须要加上一个final。
(2).原因是编译程序实现上的困难:内部类对象的生命周期会超过局部变量的生命期。局部变量的生命期:当该方法被调用时,该方法中的局部变量在栈中被创建,当方法调用结束时,退栈,这些局部变量全部死亡。而内部类对象生命期,与其它类一样,当创建一个局部内部类对象后,只有当没有其它人再引用它时,它才能死亡。所以完全可能一个方法已调用结束(局部变量已死亡),但该局部类的对象仍然活着。即:局部类的对象生命期会超过局部变量。
(3).局部内部类的对象访问同一个方法中的局部变量,那么这 ...
Java访问权限修饰符(转)
- 博客分类:
- java
1、Class类的访问权限:
public:可以供所有的类访问。
默认:默认可以称为friendly但是,java语言中是没有friendly这个修饰符的,这样称呼应该是来源于c++。默认的访问权限是包级访问权限。
即如果写了一个类没有写访问 ...
【java】好书推荐
- 博客分类:
- java
Java软件架构师所要需的东西
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们。
一、Java编程入门类
对于没有Java编程经验的程序员要入门,随便读什么入门书籍都一样,这个阶段需要你快速的掌握Java基础语法和基本用法,宗旨就是“囫囵吞枣不求甚解”,先对Java熟悉起来再说。用很短的时间快速过一遍Java语法,连懵带猜多写写代码,要“知其然”。
1、《Java编程思想》
在有了一定的Java编程经验之后,你需要 ...
Java绝对好文,转载的!(转载)
- 博客分类:
- java
想来学习Java也有两个年头了,永远不敢说多么精通,但也想谈谈自己的感受,写给软件学院的同仁们,帮助大家在技术的道路上少一点弯路。说得伟大一点是希望大家为软件学院争气,其实最主要的还是大家自身的进步提升??
1. 关于动态加载机制??
学习Java比C++更容易理解OOP的思想,毕竟C++还混合了不少面向过程的成分。很多人都能背出来Java语言的特点,所谓的动态加载机制等等。当然概念往往是先记住而后消化的,可有多少人真正去体会过动态加载的机制,试图去寻找过其中的细节呢? 提供大家一个方法:
在命令行窗口运行Java程序的时候,加上这个很有用的参数:
java -verbose *.c ...