`
文章列表
本文所讨论的话题 通常在一个业务系统中会有各种不同的角色,而在系统的若干功能模块中,这些角色所能看到的数据是不一样的。那么在程序中如何处理类似问题会更优呢,本文想通过一个简单的场景来和大家再次探讨一下如何用OO来改善我们的系统。   场景  系统中目前有三种角色,超级管理员、管理员、普通用户。有一个功能是显示书籍列表,每一种角色所能看到的书籍是不同的。这里面会有一些规则,但是这些规则不是文本所要讨论的重点。   最初的实现 通常我们最快能想到的思路是,先创建两个类,用户类User、书籍类Book。在User类中我们创建了判断用户角色类型的方法。 package fangwei.s ...
转载自    王杲杲    http://www.iteye.com/topic/49107   Meilir Page-Jones在《UML面向对象设计基础》一书中编了一个故事:软件界在“面向对象”的定义上,一度很难达成一致。我开始步入面向对象领域时,决定澄清一下“面向对象”的定义。我把数十位面向对象的老前辈关在一个没有食物和水的房间里。我告诉他们只有当他们的定义达成一致的意见,并且可以在软件世界发布时才允许他们出去。在一小时的喧哗过后,房内一片安静,老前辈们背靠背谁也不理谁了,陷入了僵局。此时,蹦出来一位组织者,让每个人都列出他们认为在面向对象世界中不可缺少的特性,大家同意。一通罗列,每 ...
<style type="text/css"> <!-- div { position: absolute; /*绝对定位*/ top: 50%; /* 距顶部50%*/ left: 50%; /* 距左边50%*/ height: 200px; margin-top: -100px; /*margin-top为height一半的负值*/ width: 400px; margin-left: -200px; /*margin-left为wi ...
主机字节序不同的CPU有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序 最常见的有两种1. Little endian:将低序字节存储在起始地址2. Big endian:将高序字节存储在起始地址 LE little-endian 最符合人的思维的字节序 地址低位存储值的低位 地址高位存储值的高位 怎么讲是最符合人的思维的字节序,是因为从人的第一观感来说 低位值小,就应该放在内存地址小的地方,也即内存地址低位 反之,高位值就应该放在内存地址大的地方,也即内存地址高位 BE big-endian 最直观的字节序 地址低位存储值的高位 地址高位存储值的低位 为什么说直观 ...
import java.util.ArrayList; import java.util.List; public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("a"); list.add("b"); list.add("c"); for (int i=list.size()-1;i>=0;i--) { ...
import java.util.ArrayList; import java.util.List; public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("a"); list.add("b"); list.add("c"); for (int i = 0; i < list.size(); i++) ...
1几个最重要的快捷键 代码助手:Ctrl+Space(简体中文操作系统是Alt+/) 快速修正:Ctrl+1 单词补全:Alt+/ 打开外部Java文档:Shift+F2 显示搜索对话框:Ctrl+H 快速Outline:Ctrl+O 打开资源:Ctrl+Shift+R 打开类型:Ctrl+Shift+T 显示重构菜单:Alt+Shift+T 上一个/下一个光标的位置:Alt+Left/Right 上一个/下一个成员(成员对象或成员函数):Ctrl+Shift+Up/Down 选中闭合元素:Alt+Shift+Up/Down/Left/Right 删除行:Ctrl+D 在当前行上插入一行:Ctr ...
如果你经常需要在Eclipse里打开相关资源文件所在的文件夹,比较麻烦,要右键,属性,在Location一栏中把所在的文件夹拷贝一下,然后再去资源管理器里输入这个路径,回车,打开它。 解决方法:   用EasyExplorer插件,有了这个插件就可以很方便地打开资源文件所在的文件夹了. 安装:  EasyExplorer 从 http://sourceforge.net/projects/easystruts 下载后就是一个jar压缩文件。最新版就是1.04,已经很久没有更新了,但是对最新的eclipse 3.*平台还是支持的。但是,该插件的安装方式好像通过eclipse 的自动更新管理不起作 ...
你写成下面这样会让你很郁闷。。。 <script type="text/javascript" src="<%=path%>/js/user.js"/>  正确的写法: <script type="text/javascript" src="<%=path%>/js/user.js"></script>  <script>必须用双标签闭合。 <!--v:3.2-->
当ibatis初始化Bean的时候,会调用无参的构造函数,所以如果Bean中有带参的构造函数,一定得多写个无参的构造函数,否则ibatis会因找不到构造函数而出错,抛出异常如下:JavaBeansDataExchange could not instantiate result class

int转byte[4]

import java.io.*; public class IOTest { public static void main(String[] args) throws Exception { int i = 65535; byte[] b = intToByteArray1(i); for (byte bb : b) { System.out.print(bb + " "); } } public static byte[] ...
橙白-橙、绿白-蓝、蓝白-绿、棕白-棕
如果你做了不少系统,很久没有使用if else了,那么说明你可能真正进入OO设计的境地了。

两种团队

有一种团队叫刘关张团队,还有一种团队叫唐僧团队。。。

读书笔记

学习程序设计的主要任务是学习如何组织程序,表达实际问题的已有解决方法,而不是去寻找实际问题的解决方法。寻找实际问题的解决方法属于系统分析与设计的范畴。  程序设计更多的是体现其艺术性,可读性是我们追求的重要目标。
Global site tag (gtag.js) - Google Analytics