04 2011 档案

面向对象设计原则七 - 组合优先于继承
摘要:组合通过创建一个由其他对象组合的对象来获得新功能的重用方法 新功能的获得是通过调用组合对象的功能实现的 有时又叫聚合 例如:一个对象拥有或者对另外一个对象负责并且两个对象有相同的生命周期。(GOF) 一个对象包含另一个对象集合 被包含对象对其他对象是不可见的并且只能从包含它的对象中访问的特殊组合形式 组合的优缺点优点被包含对象通过包含他们的类来访问 黑盒重用,因为被包含对象的内部细节是不可见的 很好的封装 每个类专注于一个任务 通过获得和被包含对象的类型相同的对象引用,可以在运行时动态定义组合的方式 缺点结果系统可能会包含更多的对象 为了使组合时可以使用不同的对象,必须小心的定义接口 继承通过 阅读全文

posted @ 2011-04-17 23:31 yang3wei 阅读(312) 评论(0) 推荐(0)

面向对象设计原则六 - 针对接口编程,而不是针对实现编程
摘要:程,而不是针对实现编程接口接口是一个对象中可以被另一个对象调用的一组方法 一个对象可以有多个接口 类型是一个对象的特殊接口 不同的对象可以有相同的类型,一个对象可以有多种不同的类型 一个对象只有通过它的接口才能被其他对象知晓 接口是可插拔的关键 实现继承和接口继承实现继承(类继承)------ 一个对象的实现定义在另一个对象的实现的基础上 接口继承 ------ 描述了一个对象什么时候可以代替另一个对象使用 Java为接口继承提供了专用的结构 - interface Java的接口结构使专注于对象接口的设计更容易实现 接口的优缺点优点客户端不知道他们所使用对象的具体类型 一个对象可以被另一个对 阅读全文

posted @ 2011-04-17 23:30 yang3wei 阅读(821) 评论(0) 推荐(0)

面向对象的设计原则五 - 依赖倒转原则
摘要:动机在一个应用程序中,我们有一些实现了基础的、主要的操作的底层类和一些封装了复杂逻辑的上层类。实现这种结构的很自然地方式就是,先编写底层类,完成后再编写复杂的上层类。因为上层类是由其他东西定义的,所以这看起来是一种很合理的方式。但是这不是一个灵活的设计,如果我们需要替换一个底层类时会发生什么?让我们以经典的拷贝程序为例,它从键盘读取一些字符,然后把他们输出到打印设备上。包含该逻辑的上层类是Copy类,底层类是KeyboardReader和PrinterWriter。在一个不好的设计中,上层类直接使用底层的类,在这种情况下,如果我们想要把输出定向到新的FileWriter类,就必须修改Copy类 阅读全文

posted @ 2011-04-17 23:26 yang3wei 阅读(254) 评论(0) 推荐(0)

面向对象的设计原则四 - 里氏代换原则
摘要:动机当我们设计程序模块时,我们会创建一些类层次结构,然后我们通过扩展一些类来创建它们的子类。我们必须确保子类只是扩展而没有替换父类的功能,否则当我们在已有程序模块中使用它们时将会产生不可预料的结果。里氏代换原则表明当一个程序模块使用基类时,基类的引用可以被子类替换而不影响模块的功能。里氏代换原则基类完全能够被子类替代而不影响模块的功能。实例对于多态来说里氏代换原则好像是很显然的事情,例如:Java代码 publicvoiddrawShape(Shapes){ //Codehere. }public void drawShape(Shape s) { // Code here. }对于Shape 阅读全文

posted @ 2011-04-17 23:23 yang3wei 阅读(203) 评论(0) 推荐(0)

面向对象的设计原则三 - 接口隔离原则
摘要:动机当我们设计应用程序的时候,如果一个模块包含多个子模块,那么我们应该小心对该模块做出抽象。设想该模块由一个类实现,我们可以把系统抽象成一个接口。但是当我们想要添加一个新的模块扩展程序时,如果要添加的模块只包含原系统中的一些子模块,那么就会强迫我们实现接口中的所有方法,并且还要编写一些哑方法。这样的接口被称为胖接口或者叫被污染的接口,使用这样的接口将会给系统引入一些不正确的行为。接口隔离原则表明客户端不应该被强迫实现一些他们不会使用的接口,应该把胖接口中的方法分组,然后用多个接口代替它,每个接口服务于一个子模块。接口隔离原则不应该强迫客户端依赖于他们不会使用的接口。实例下面是一个违反了接口隔离 阅读全文

posted @ 2011-04-17 23:19 yang3wei 阅读(267) 评论(0) 推荐(0)

面向对象的设计原则二-单一职责原则
摘要:转载自:http://zjliu.iteye.com/blog/423217动机在本文中职责是指引起变化的原因。该原则表明,如果你有多个原因去改变一个类,那么应该把这些引起变化的原因分离开,把这个类分成多个类,每个类只负责处理一种改变。当你做出某种改变时,只需要修改负责处理该改变的类。当我们去改变一个具有多个职责的类时可能会影响该类的其他功能。单一职责原则一个类应该只受一种变化的影响。单一职责原则简单而直观,但是在实际实现中可能是很困难的。实例假设我们需要一个对象保存email信息,在下面的例子中我们将使用IEMAIL接口。初看起来,一切都很好。但是仔细分析我们会发现我们的IEMAIL接口和E 阅读全文

posted @ 2011-04-17 23:16 yang3wei 阅读(181) 评论(0) 推荐(0)

12 PowerDesigner学习笔记
摘要:【1.怎么建立一张表?】拖出一个“实体(Entity)”即可!【2.怎么建立两张表之间的主外键关联?】relationship!这个我现在还没能找到答案~【3.怎么编辑表的字段?】双击实体即可!在弹出的对话框中可以对实体表进行字段编辑~【4.在PD中建立概念数据模型时可以在Visio中先建立ER图】可以用VIsio中的框图来实现!Visio的使用技巧有待进一步提升~【5.主外键的问题!】实体建立完了之后就要建立关系了在概念模型中不要去写外键(会自动生成),概念模型中不涉及到外键的概念~这个概念是在屋里模型中才会有的~relationship,从部门表拉到员工表(缺省是一(始)对多(终),不过可 阅读全文

posted @ 2011-04-16 12:38 yang3wei 阅读(196) 评论(0) 推荐(0)

11 Oracle创建删除用户、角色、表空间、导入导出、...命令总结
摘要://创建临时表空间 create temporary tablespace zfmi_temp tempfile 'D:/oracle/oradata/zfmi/zfmi_temp.dbf' size 32m autoextend on next 32m maxsize 2048m extent management local; //tempfile参数必须有 //创建数据表空间 create tablespace zfmi logging datafile 'D:/oracle/oradata/zfmi/zfmi.dbf' size 100m autoext 阅读全文

posted @ 2011-04-16 12:37 yang3wei 阅读(229) 评论(0) 推荐(0)

Oracle常用命令10(oracle例外处理)
摘要:【例外传递】如果不处理例外我们看看会出现什么情况:案例,编写一个过程,可接收雇员的编号,并显示该雇员的姓名。问题是,如果输入的雇员编号不存在,怎样去处理呢?--例外案例declare--定义v_ename emp.ename%type;begin--执行select ename into v_ename from emp where empno=&gno;dbms_output.put_line('名字:'||v_ename);--no_data_found是预定义的例外,它认为这些例外很常见when no_data_found thendbms_output.put_ 阅读全文

posted @ 2011-04-16 12:36 yang3wei 阅读(158) 评论(0) 推荐(0)

Oracle常用命令09(pl_sql编程2)
摘要:始自【韩顺平.玩转oracle第27讲.pl/sql编程(4)】【期望目标】1.掌握pl/sql的高级用法(能编写分页过程模块,下订单过程模块...)2.会处理oracle常见的例外3.会编写oracle各种触发器4.理解视图的概念并能灵活使用视图【介绍】在任何计算机语言(c,java,pascal)都有各种控制语句(条件语句,循环结构,顺序控制结构)在pl/sql中也存在这样的控制语句。【期望目标】①使用各种if语句②使用循环语句③使用控制语句---goto和null;【条件分支语句】pl/sql中提供了三种条件分支语句if -- then,if -- then -- else,if -- 阅读全文

posted @ 2011-04-16 12:35 yang3wei 阅读(223) 评论(0) 推荐(0)

Oracle常用命令08(pl_sql编程)
摘要:【期望目标】①理解oracle的pl/sql概念②掌握pl/sql编程技术(包括编写存储过程、函数,触发器,包...)【pl/sql是什么】pl/sql(procedural language/sql)是oracle在标准的sql语言上的扩展。pl/sql不仅允许嵌入sql语言,还可以定义[变量]和[常量],允许使用[条件语句]和[循环语句],允许[使用例外处理各种错误],这样使得他的功能变得更加强大。①过程、函数、触发器是pl/sql编写的②过程、函数、触发器实在oracle中的【减少对项目的成本:对复杂的一块业务,由专人负责】【分页的过程:表名,第几页,每页几条记录】【订单的过程】【转账的 阅读全文

posted @ 2011-04-16 12:34 yang3wei 阅读(267) 评论(0) 推荐(0)

Oracle常用命令06(数据库管理)
摘要:oracle数据库管理:①数据库管理员的概念②数据库(表)的逻辑备份和恢复③数据字典和动态性能视图④管理表空间和数据文件oracle管理员的基本职责是什么?掌握备份和恢复数据库/表的方法理解表空间、 数据字典、性能视图【腾讯、新浪、海关等等,小型的项目倒用不上dba】【数据库和网络已经越来越受到重视了~】每个oracle数据库应该至少有一名数据库管理员(dba),对于一个小的数据库,一个dba就够了,但是对于一个大的数据库可能需要多个dba分别担负不同的管理职责。那么一个数据库管理员的主要工作是什么呢:①安装和升级oracle数据库②建表、表空间、表、视图、索引...③指定并实施备份与恢复计划 阅读全文

posted @ 2011-04-16 12:33 yang3wei 阅读(194) 评论(0) 推荐(0)

Oracle常用命令07(约束,索引,权限,角色)
摘要:期望目标:①掌握维护oracle数据完整性的技巧②理解索引概念,会建立索引【优化数据库的第一步就是看有没有建立索引】③管理oracle的权限和角色维护数据的完整行 - 介绍数据的完整性用于确保数据库数据遵从一定的商业和逻辑规则。在oracle中,数据完整性可以使用约束、触发器、应用程序(过程、函数)三种方法来实现,在这三种方法中,因为约束易于维护,并且具有最好的性能,所以作为维护数据完整性的首选。【约束:数据不合理我就不让你放进来】【约束】约束用于确保数据库满足特定的商业规则。在oracle中,约束包括:①not null【非空】,②unique【唯一】,③primary key【主键】,④f 阅读全文

posted @ 2011-04-16 12:33 yang3wei 阅读(363) 评论(0) 推荐(0)

5 oracle的事务
摘要:始自第13讲 oracle的事务在oracle中操作数据 -- 使用子查询插入数据当使用values子句时,一次只能插入一行数据,当使用子查询插入数据时,一条insert语句可以插入大量的数据。当处理行迁移或者装载外部表的数据到数据库时,可以使用子查询来插入数据。==================================================================SQL> create table y3w (myId number(4), myName varchar2(50), myDept number(5));Table createdSQL> 阅读全文

posted @ 2011-04-16 12:31 yang3wei 阅读(279) 评论(0) 推荐(0)