- 浏览: 30292 次
- 性别:
- 来自: 陕西
最新评论
-
ideal46:
mercyblitz 写道一句话,抽象工厂就是工厂的工厂。我理 ...
创建者模式--抽象工厂 -
mercyblitz:
一句话,抽象工厂就是工厂的工厂。
创建者模式--抽象工厂 -
ideal46:
2010-淡定 写道一年换四家公司 平均三个月换一家哈 试用 ...
开始我的博客生活 -
ideal46:
select*from爱 写道年轻人,淡定正因为是年轻人,所以 ...
开始我的博客生活 -
ideal46:
liubey 写道你一年换了四家公司?貌似你很强大啊,没违约金 ...
开始我的博客生活
文章列表
1. 什么是POM
POM代表“Project Object Model” 工程对象模型。通过pom.xml,用xml来表现一个Maven工程。在Maven那帮人面前,说一个项目说的是哲学层面的意思,已经超越了单纯的代码文件集。一个项目包含配置文件,开发人员,开发人员扮演的角色,缺陷跟踪系统,组织和证书,项目存放的URL地址,项目的依赖项和所有保证项目运行的事物。对于项目关心的所有事物都是一站式到达,事实上在Maven中,不需要包含任何代码,只需要一个pom.xml文件即可。
2. 快速一览
<project xmlns="http://maven.apache.or ...
Maven是Apache的一个项目,是软件项目管理软件和压缩工具。它基于POM (Project Object Model: 项目对象模型)通过来自中央的信息片来管理项目版本,报告和文档。
如果你觉得Maven可以在项目中帮到你,你可以阅读“http://maven.apache.org/”中的内容,或者继续阅读我的后续翻译。下面我简单介绍一下,Maven包含的需要学习的几个方面。
[1] 执行Maven脚本, 如果你想build一个maven项目,你需要学会如何执行maven脚本。
[2] 使用Maven, 学会如何书写Maven脚本。
[3] 使用Maven Plugins ...
当遇到“Your content mush have a listView whose id attribute is 'android.R.id.list'“异常时:
一般在继承ListActivity时候,我们可以不指定xml的layout文件,但是当我们使用setContentView(xx)指定xml的layout时,确定在此xml文件中我们定义如下view
<ListView
android:id="@android:id/list"
android:layout_width="match_parent ...
在AndroidManifest.xml中加入下面的activity后,出现警告“exported activity does not require permission”
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="http" ...
1.阅读referDoc中的WPSThemeDev.docx和themePage.jpg,了解WPS theme的工作原理。(default.jsp, banner.jspf (banner-xxx.jspf), topNav.jspf, sideNav.jspf)
2.确定自己的需求,决定如何通过现有的theme改进。
3.拷贝模板theme到 profiles/wp_profile/installedApps/nodename/wps.ear/wps.war/themes/html.
4.创建使用此theme的page。
5.然后修改模板theme的相关内容以满足自己的需求。 (测试的时候需 ...
定义:通过将已存在的接口转换为新接口来实现一个应用中不相关类的统一性与可用性。
优点及使用:
尽力去匹配接口(窗口适配器等)
让不相关的类一起工作
更多一致性
增加类的透明度
可插拔套件
代理对象
类的高可用性
通过继承或者融合达到目标
相关模式有:
代理模式:提供与其主题一致的接口,但是适配器是提供适合对象的不同接口
挂件模式:他致力于给对象添加新功能,但是适配器是让两个不同接口配合工作
桥接模式:分离接口与其实现,让对象高度独立,但是适配器尝试修改和协对像的接口
例子:
java API中著名的适配器类有Wi ...
当你实现Serializable接口的时候,预示着你在使用序列化与反序列化,此时你会考虑如果对于大对象是不是也需要进行序列化,如果不需要,那怎么避免他们在实现Serializable接口后不序列化这个属性对象那?OK,java提供了关键字transient,它的意思是瞬间,它会避免被她修饰的属性被序列化。
下边是一个例子:
package javabeat.samples;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java ...
定义:一个类实例或者应用的一个全局访问值。
优点及使用:
通过定义final型类来保证实例唯一和防止克隆
通过定义final型的子类进行扩展
让一个方法或者变量静态公有
通过提供的方法访问实例
良好的类的实例化控制
通过定 ...
翻译了抽象工厂,构建者,工厂方法,原型模式还有今天的单例模式,对于构建模式应该做一个简单的总结。他们都是producer,通过不同的机制生产出我们需要的实例,不过各有各的优点以及各自的侧重点。
抽象工厂:工厂的工厂,也就是说它的目的是为了提供各种不同的工厂方法。
构建者:造一座房子,这个例子应该是构建者模式由来的现实原型,由各种不同的构件完成者提供方法,然后在构建者中进行组装。
工厂方法:顾名思义,这种模式主要是提供实例的生产工厂。
原型模式:通过原型构造复杂的对象(克隆)。
单例模式:对于不可变对象,因为他们每个对象实例基本上没什么差别,所以使用这种模式可以节约内存。
clone
protected Object clone()throws CloneNotSupportedException
创建和返回一个对象的拷贝,拷贝的准确含义依赖于对象的类。
一般来说,对于任何对象x,
表达式x.clone() != x 是true,
表达式x.clone().getClass() == x.getClass()也是true ...
定义:通过克隆对象减少创建对象的成本。
优点及使用:
当很多子类仅仅是类型不同的时候使用
当一个系统需要独立于创建,整合和显示的时候
动态绑定或者动态加载方法
只是通过改变实力的状态或者参数就可以完成任务
运行时添加或者删除对象
通过改变结构指定新对象
用类动态配置应用程序
相关模式包括:
抽象工厂:与原型模式一起使用,抽象工厂存储多种原型
混合模式:与原型模式一起使用完成整体部分关系
挂件模式:给原型添加另外的一些功能
例子:
动态加载是典型的面向对象特点和原型模式的例子,例如,重载方法就是一种原型模式。
interface ...
定义:提供抽象方法或者接口,让子类或者实现类根据情况或者给定参数决定哪些类类或者方法应该被实例化或者被调用。
使用及优点:
连接平行的类层次结构
一个希望子类指定对象的类
一个类无法预料他的子类时必须被创建
通过使用共享接口来分开对象家庭
该代码是需要处理的接口,而不是实现了的类
对客户端隐藏具体的类
工厂方法可以被参数化
放回的对象可以是抽象类的也可以是具体类
提供钩子给子类比直接创建对象更灵活
遵守命名规则以帮助其他开发者认识代码结构
相关模式:
抽象工厂: 比工厂方法高一层
模板方法: 他定义了一个算法的骨架让子类遵守或者避免子类
原型: ...
定义: 从一个简单对象一步一步构造复杂对象
优点及使用:
仅仅通过指定的类型和内容构建复杂对象,而且隐藏构造的实现细节
解耦通过对象组件构造一个复杂对象的过程
分离构造和显示的代码
通过构造过程达到良好的控制
相关模式有:
抽象工厂:重点是在工厂模式(简单工厂或者复杂工厂),而构建者模式重点是由简单对象构建复杂对象
复合模式:它经常被用来构建复杂对象
例子:
为了建设一座房子,我们需要按照以下步骤:
1.建设基础设施
2.建设主体框架
3.装修外部
4.装修内部
让我们用一个抽象类HouseBuilder来定义这四个步骤。 ...
抽象工厂
构建者
工厂方法
原型
单例
抽象工厂
定义:提供工厂方法之上级别的接口,主要用于返回一个或者多个工厂。
优点及使用:
创建相关的或者无关的对象组
提供产品化的类库,只暴露接口
实现类需要独立于超 ...
如果一个问题反复发生,那么这个问题的解决方案就会被有效使用,这种被频繁使用的解决方案就叫做模式。设计模式是语言独立(开发语言)的,主要用来解决面向对象设计的一般问题。当你设计一种方案,你应该知道一些常见的解决方案的名称。通过学习设计模式,对于有效沟通也大有裨益。实际上,你可能已经很熟悉一些设计模式了,只是没有一个众所周知的名称来描述而已。SUN建议 GOF(Gang Of Four--四个写了“设计模式”-面向对象软件的可重用组件的开拓者),所以我们使用这本书作为指导来描述解决方案。请熟悉这些规则并且学习他人处理代码问题的方式。
为什么要使用设计模式
如果你想成为专业的java开发者,你至少 ...