??xml version="1.0" encoding="utf-8" standalone="yes"?>久久夜色精品国产欧美乱,在线精品视频一区二区,久久99精品久久久水蜜桃http://www.aygfsteel.com/sitinspring/category/23516.html人生苦短Q要紧跟自己的梦惻I׃所做的事业?/description>zh-cnSat, 12 Apr 2008 02:37:04 GMTSat, 12 Apr 2008 02:37:04 GMT60- 三种权限设计Ҏ的归U_比较http://www.aygfsteel.com/sitinspring/archive/2008/04/10/191768.html如坐春风如坐春风Thu, 10 Apr 2008 02:20:00 GMThttp://www.aygfsteel.com/sitinspring/archive/2008/04/10/191768.htmlhttp://www.aygfsteel.com/sitinspring/comments/191768.htmlhttp://www.aygfsteel.com/sitinspring/archive/2008/04/10/191768.html#Feedback7http://www.aygfsteel.com/sitinspring/comments/commentRss/191768.htmlhttp://www.aygfsteel.com/sitinspring/services/trackbacks/191768.html阅读全文

]]> - 阿拉伯数字转大写汉字程序的c?/title>http://www.aygfsteel.com/sitinspring/archive/2008/03/25/188587.html如坐春风如坐春风Tue, 25 Mar 2008 13:15:00 GMThttp://www.aygfsteel.com/sitinspring/archive/2008/03/25/188587.htmlhttp://www.aygfsteel.com/sitinspring/comments/188587.htmlhttp://www.aygfsteel.com/sitinspring/archive/2008/03/25/188587.html#Feedback1http://www.aygfsteel.com/sitinspring/comments/commentRss/188587.htmlhttp://www.aygfsteel.com/sitinspring/services/trackbacks/188587.html
阿拉伯数字等于:0 大写汉字{于Q零?
阿拉伯数字等于:3.14159 大写汉字{于Q叁点壹肆壹伍玖
阿拉伯数字等于:101.3 大写汉字{于Q壹佰零壹点?
阿拉伯数字等于:10203040506070809 大写汉字{于Q壹萬兆零贰佰零叁兆零肆佰零伍億雉佰零柒萬零捌佰零玖整
阿拉伯数字等于:7897645 大写汉字{于Q柒佰捌拄萬柒仟陆佰肆拾伍?
阿拉伯数字等于:500000001000000 大写汉字{于Q伍佰兆零壹佰萬?
阿拉伯数字等于:2435685 大写汉字{于Q贰佰肆拑֏萬伍仟陆佰捌拾伍?
阿拉伯数字等于:5345438976 大写汉字{于Q伍拑֏億肆仟伍佰肆拑֏萬捌仟玖佰柒N?
阅读全文
]]> - 设计构徏一个Y件程序的基本步骤探讨http://www.aygfsteel.com/sitinspring/archive/2008/01/26/177949.html如坐春风如坐春风Sat, 26 Jan 2008 13:19:00 GMThttp://www.aygfsteel.com/sitinspring/archive/2008/01/26/177949.htmlhttp://www.aygfsteel.com/sitinspring/comments/177949.htmlhttp://www.aygfsteel.com/sitinspring/archive/2008/01/26/177949.html#Feedback10http://www.aygfsteel.com/sitinspring/comments/commentRss/177949.htmlhttp://www.aygfsteel.com/sitinspring/services/trackbacks/177949.html数据的收集,整理Q表玎ͼ存储和传输就是Y件的主要dQ它们也是程序员的主要工作内容,也是E序员编写代码的最l目的?
那么该如何编写代码让软g完成它的主要d呢?~写代码的过E是否有规律可@Q编写代码需要注意那些方面的问题Q本人想p些问题罗列自׃些粗的看法Qƈ大家q行一些探讨?nbsp; 阅读全文
]]> - 使用泛型cȝ化服务层(Service)cȝ设计http://www.aygfsteel.com/sitinspring/archive/2007/12/28/171243.html如坐春风如坐春风Fri, 28 Dec 2007 08:47:00 GMThttp://www.aygfsteel.com/sitinspring/archive/2007/12/28/171243.htmlhttp://www.aygfsteel.com/sitinspring/comments/171243.htmlhttp://www.aygfsteel.com/sitinspring/archive/2007/12/28/171243.html#Feedback2http://www.aygfsteel.com/sitinspring/comments/commentRss/171243.htmlhttp://www.aygfsteel.com/sitinspring/services/trackbacks/171243.html阅读全文

]]> - 一个解析文本中的信息ƈ向对象赋DE的思?http://www.aygfsteel.com/sitinspring/archive/2007/12/07/166082.html如坐春风如坐春风Fri, 07 Dec 2007 08:35:00 GMThttp://www.aygfsteel.com/sitinspring/archive/2007/12/07/166082.htmlhttp://www.aygfsteel.com/sitinspring/comments/166082.htmlhttp://www.aygfsteel.com/sitinspring/archive/2007/12/07/166082.html#Feedback0http://www.aygfsteel.com/sitinspring/comments/commentRss/166082.htmlhttp://www.aygfsteel.com/sitinspring/services/trackbacks/166082.html阅读全文

]]> - U有的成员能被子cȝ承吗?http://www.aygfsteel.com/sitinspring/archive/2007/12/04/165288.html如坐春风如坐春风Tue, 04 Dec 2007 12:42:00 GMThttp://www.aygfsteel.com/sitinspring/archive/2007/12/04/165288.htmlhttp://www.aygfsteel.com/sitinspring/comments/165288.htmlhttp://www.aygfsteel.com/sitinspring/archive/2007/12/04/165288.html#Feedback5http://www.aygfsteel.com/sitinspring/comments/commentRss/165288.htmlhttp://www.aygfsteel.com/sitinspring/services/trackbacks/165288.html
q个机制对于复杂的类体系中保护父cM被滥用很有好? 阅读全文
]]> - 目录树的建立,遍历及批量删?/title>http://www.aygfsteel.com/sitinspring/archive/2007/12/03/164988.html如坐春风如坐春风Mon, 03 Dec 2007 12:03:00 GMThttp://www.aygfsteel.com/sitinspring/archive/2007/12/03/164988.htmlhttp://www.aygfsteel.com/sitinspring/comments/164988.htmlhttp://www.aygfsteel.com/sitinspring/archive/2007/12/03/164988.html#Feedback0http://www.aygfsteel.com/sitinspring/comments/commentRss/164988.htmlhttp://www.aygfsteel.com/sitinspring/services/trackbacks/164988.html阅读全文

]]> - 使用XML作ؓ持久存储介质的解x案箋 http://www.aygfsteel.com/sitinspring/archive/2007/11/15/160696.html如坐春风如坐春风Thu, 15 Nov 2007 02:22:00 GMThttp://www.aygfsteel.com/sitinspring/archive/2007/11/15/160696.htmlhttp://www.aygfsteel.com/sitinspring/comments/160696.htmlhttp://www.aygfsteel.com/sitinspring/archive/2007/11/15/160696.html#Feedback0http://www.aygfsteel.com/sitinspring/comments/commentRss/160696.htmlhttp://www.aygfsteel.com/sitinspring/services/trackbacks/160696.html阅读全文

]]> - MVC1,MVC2?/title>http://www.aygfsteel.com/sitinspring/archive/2007/11/05/158343.html如坐春风如坐春风Mon, 05 Nov 2007 12:15:00 GMThttp://www.aygfsteel.com/sitinspring/archive/2007/11/05/158343.htmlhttp://www.aygfsteel.com/sitinspring/comments/158343.htmlhttp://www.aygfsteel.com/sitinspring/archive/2007/11/05/158343.html#Feedback1http://www.aygfsteel.com/sitinspring/comments/commentRss/158343.htmlhttp://www.aygfsteel.com/sitinspring/services/trackbacks/158343.html阅读全文

]]> - d锁的OO分析http://www.aygfsteel.com/sitinspring/archive/2007/10/21/154652.html如坐春风如坐春风Sun, 21 Oct 2007 03:42:00 GMThttp://www.aygfsteel.com/sitinspring/archive/2007/10/21/154652.htmlhttp://www.aygfsteel.com/sitinspring/comments/154652.htmlhttp://www.aygfsteel.com/sitinspring/archive/2007/10/21/154652.html#Feedback2http://www.aygfsteel.com/sitinspring/comments/commentRss/154652.htmlhttp://www.aygfsteel.com/sitinspring/services/trackbacks/154652.html1.不加M限制,多见于读取写入都很快的情?但有时也会出现问?
2.对读写函数都加以同步?比如使用singleton模式,q下问题是没?但效率也下去?比如说两个读取线E不是非要排队进入不?
3.d?安全和效率都得到了解?特别合适读U程多于写线E的情况.也就是下面将要展现的模式.
d锁的本意是分别对d状态进行互斥区?有互斥时才加?否则放行.互斥的情冉|:
1.d互斥.
2.写写互斥.
不互斥的情况?读读,q种情况不该加以限制.
我们只要让锁对象知道当前d状态就可以?再根据情况进行锁定和解锁,然后再分情况q行锁定.L代码 阅读全文
]]> - 工h自动获取d的OO分析http://www.aygfsteel.com/sitinspring/archive/2007/10/20/154437.html如坐春风如坐春风Sat, 20 Oct 2007 01:53:00 GMThttp://www.aygfsteel.com/sitinspring/archive/2007/10/20/154437.htmlhttp://www.aygfsteel.com/sitinspring/comments/154437.htmlhttp://www.aygfsteel.com/sitinspring/archive/2007/10/20/154437.html#Feedback0http://www.aygfsteel.com/sitinspring/comments/commentRss/154437.htmlhttp://www.aygfsteel.com/sitinspring/services/trackbacks/154437.html
上次的情冉|p度员d分配d,但有些情况下需要工动取得Q务而不是由调度员分?q时需要对U程q行通知,使用的主要方法就是对象的wait(),notify(),notifyAll()三个函数,它们都必M同步Ҏ(synchronized method)中调? 阅读全文
]]> - 调度?工h及Q务的OO分析q程.http://www.aygfsteel.com/sitinspring/archive/2007/10/05/150527.html如坐春风如坐春风Fri, 05 Oct 2007 04:52:00 GMThttp://www.aygfsteel.com/sitinspring/archive/2007/10/05/150527.htmlhttp://www.aygfsteel.com/sitinspring/comments/150527.htmlhttp://www.aygfsteel.com/sitinspring/archive/2007/10/05/150527.html#Feedback0http://www.aygfsteel.com/sitinspring/comments/commentRss/150527.htmlhttp://www.aygfsteel.com/sitinspring/services/trackbacks/150527.html1.调度员将工g囄交付l工?q是d的下?
2.工h工作,完成工g,q是d的进行过E?
3.工g完成?工h图U和工gq还l调度员,或者到了确定的旉后由调度员去?q是d的完?
4.重复上述三个步骤.
在这个流E中,q存在一些特?
1.工h可以有多Q?但他在一个时间只能做一个活,具体做那个由d的优先定.
2.d完成后要让调度员知道,现实中是工h来找调度员或者调度员扑ַ人来实现?
从上q情况分?我们需要Q?工h,调度员三个类来完成徏?另外Z方便d的存储和理,q需要一个Q务串cL辅助.
阅读全文
]]> - 内容及其标志的OO分析q程(DB4O实现)http://www.aygfsteel.com/sitinspring/archive/2007/10/03/150284.html如坐春风如坐春风Wed, 03 Oct 2007 10:45:00 GMThttp://www.aygfsteel.com/sitinspring/archive/2007/10/03/150284.htmlhttp://www.aygfsteel.com/sitinspring/comments/150284.htmlhttp://www.aygfsteel.com/sitinspring/archive/2007/10/03/150284.html#Feedback0http://www.aygfsteel.com/sitinspring/comments/commentRss/150284.htmlhttp://www.aygfsteel.com/sitinspring/services/trackbacks/150284.html阅读全文

]]> - 如何作出一个完善的分析复杂嵌套SQL语句的程? (附上自己做的分析嵌套SQL语句的两个类)http://www.aygfsteel.com/sitinspring/archive/2007/09/17/145819.html如坐春风如坐春风Mon, 17 Sep 2007 05:12:00 GMThttp://www.aygfsteel.com/sitinspring/archive/2007/09/17/145819.htmlhttp://www.aygfsteel.com/sitinspring/comments/145819.htmlhttp://www.aygfsteel.com/sitinspring/archive/2007/09/17/145819.html#Feedback4http://www.aygfsteel.com/sitinspring/comments/commentRss/145819.htmlhttp://www.aygfsteel.com/sitinspring/services/trackbacks/145819.html 阅读全文

]]> - 用分L解决U联对象与相应XML之间的互相{化问?/title>http://www.aygfsteel.com/sitinspring/archive/2007/09/17/145660.html如坐春风如坐春风Sun, 16 Sep 2007 16:25:00 GMThttp://www.aygfsteel.com/sitinspring/archive/2007/09/17/145660.htmlhttp://www.aygfsteel.com/sitinspring/comments/145660.htmlhttp://www.aygfsteel.com/sitinspring/archive/2007/09/17/145660.html#Feedback4http://www.aygfsteel.com/sitinspring/comments/commentRss/145660.htmlhttp://www.aygfsteel.com/sitinspring/services/trackbacks/145660.html阅读全文

]]> - 使XML作ؓ持久存储介质的解x?/title>http://www.aygfsteel.com/sitinspring/archive/2007/08/27/139918.html如坐春风如坐春风Mon, 27 Aug 2007 06:29:00 GMThttp://www.aygfsteel.com/sitinspring/archive/2007/08/27/139918.htmlhttp://www.aygfsteel.com/sitinspring/comments/139918.htmlhttp://www.aygfsteel.com/sitinspring/archive/2007/08/27/139918.html#Feedback3http://www.aygfsteel.com/sitinspring/comments/commentRss/139918.htmlhttp://www.aygfsteel.com/sitinspring/services/trackbacks/139918.html
对一些需要将数据持久化的型E序?传统的关pd数据库显得庞大而不实用,而用XML是一U较好的选择.本文就设计一个合理的XML持久化的解决Ҏq行探讨. 阅读全文
]]> - 在C# WinFormE序中创建控件数l及相应的事件处?/title>http://www.aygfsteel.com/sitinspring/archive/2007/08/04/134367.html如坐春风如坐春风Sat, 04 Aug 2007 00:18:00 GMThttp://www.aygfsteel.com/sitinspring/archive/2007/08/04/134367.htmlhttp://www.aygfsteel.com/sitinspring/comments/134367.htmlhttp://www.aygfsteel.com/sitinspring/archive/2007/08/04/134367.html#Feedback0http://www.aygfsteel.com/sitinspring/comments/commentRss/134367.htmlhttp://www.aygfsteel.com/sitinspring/services/trackbacks/134367.html
ȝh,在C#中创建控件数l很?首先在类中创Z个控件类型的数组,然后初始化它,具体初始化是动态创是链接到已有控g可以Ҏ情况自行选择,然后为数l元素添加事?最后实C件即?在事件实C卛_以通过转化sender来得到相应控?
阅读全文
]]> - 更适合SwingE序的MVCҎhttp://www.aygfsteel.com/sitinspring/archive/2007/07/19/131268.html如坐春风如坐春风Thu, 19 Jul 2007 06:47:00 GMThttp://www.aygfsteel.com/sitinspring/archive/2007/07/19/131268.htmlhttp://www.aygfsteel.com/sitinspring/comments/131268.htmlhttp://www.aygfsteel.com/sitinspring/archive/2007/07/19/131268.html#Feedback4http://www.aygfsteel.com/sitinspring/comments/commentRss/131268.htmlhttp://www.aygfsteel.com/sitinspring/services/trackbacks/131268.html
在SwingE序?我们通常采用让View实现Observer接口,让Modell承ObservablecL实现MVC1,而让Controller把它们创建及q接h,具体代码如下:

public class XXXControl
{
private XXXModel model = null;
private XXXView view = null;


public XXXControl()
{
model = new XXXModel();
view = new XXXView();
model.addObserver(view);
}

.
.
.
}
而Modelq过处理后得Cl果,它采用Observable的notifyObservers()Ҏ来通知Viewq行改变,而View的public void update(Observable o, Object arg)Ҏ相应这一改变,它通过解析Observablecd的对象o得到处理l果,再进行具体的表现层改?
_看hMVC各司其职,很完?但还有不和谐的隐?
1.View必须知道解析Model,造成了二者的耦合.
2.View非得实现Observer接口,Model非得l承Observablec?q个处理不是必要?
3.q种模式只适合x处理,即相应很快的处理,对于耗时q程q不适合.
4.׃Model中数据众?很多时候我们还需要徏立一个常量类来区分各U情况和军_View更新的地?q一步加重了cM间的耦合E度.
lg,我觉得对于稍大的SwingE序,MVC2+U程回调方式更适合,它的主要处理?
1.依然由Controller创徏View和Model,它们担负的职责也和原来一?但是View不实现Observer接口,Model不承Observablec?它们该怎么栯是怎么?而让Controller来充当它们之间的中介?
2.如果是即时处?可以在Controller中添加事件处理时q接写?如果是耗时处理,可以View和Model的引?或Model中元素的引用)传递给一个线E处理类,具体的运和界面反应在线E处理类中完?
下面是一个调用例?
new FetchTablesThread(model.getDataSource(), view,schema).start();
下面是线E类的例?

public class FetchTablesThread extends BaseThread
{
private static Logger logger = Logger.getLogger(FetchTablesThread.class);

private String schema;

public FetchTablesThread(DataSource dataSource, SqlWindowView view,

String schema)
{
super(dataSource, view);
this.schema = schema;
}


public void run()
{
OutputPanel outputPanel = view.getTabbedPanel().getInputOutputPanel().getOutputPanel();


try
{

if (dataSource.getDbtype().equals("mysql"))
{
// Specail Process for MySql
new FetchTables4MySqlThread(dataSource, view, schema).start();

} else
{
// Ordinary Process for other DB
List tables = dataSource.getTablesInSchema(schema);


if (tables.size() > 0)
{
// Find tables under schema
view.getCatalogTablesPanel().getMultiTable().refreshTable(
tables);

outputPanel.showText(true);
String text = "Find " + tables.size()
+ " tables under schema:" + schema
+ " successfully!";
outputPanel.appendOutputText(text);
logger.info(text);

} else
{
// Can't find tables under schema
outputPanel.showText(true);
String text = "Can't find any table under schema:" + schema;
outputPanel.appendOutputText(text);
logger.info(text);
}
}

} catch (Exception ex)
{
outputPanel.showText(true);
String text = "Can't find any table under schema:" + schema+" and errorMsg="+ex.getMessage();
outputPanel.appendOutputText(text);
logger.info(text);
}
}
}
q样做有两个好处一是ɽE序l构松散?适于修改,二是相对传统的MVC2,Controller中事件处理的代码也容易变得简单而清?可维护性更?
lg,我认为MVC2+U程回调方式是一U值得推荐的Swing桌面E序写法.
关于U程回调方式,您可以参?
http://www.aygfsteel.com/sitinspring/archive/2007/06/28/126809.html
关于MVC,您可以参?
http://junglesong.yculblog.com/post.2665424.html

]]> - 关于权限pȝ的设?/title>http://www.aygfsteel.com/sitinspring/archive/2007/06/11/123330.html如坐春风如坐春风Mon, 11 Jun 2007 02:55:00 GMThttp://www.aygfsteel.com/sitinspring/archive/2007/06/11/123330.htmlhttp://www.aygfsteel.com/sitinspring/comments/123330.htmlhttp://www.aygfsteel.com/sitinspring/archive/2007/06/11/123330.html#Feedback6http://www.aygfsteel.com/sitinspring/comments/commentRss/123330.htmlhttp://www.aygfsteel.com/sitinspring/services/trackbacks/123330.html
对于q样的系l一U常见的处理方式是固化,是按等U给定权限,比如部门l理拥有所有项目的CRUD权限Q项目经理只对自q目有CRUD权限Q一般成员只有R权限Q这L设计不能完全反映现实的关pR只能用于非常僵化的场合?br>
实际上,目Q成员的关系cM于房间的门和人的关系Q蝲它们之间加上钥匙一切都q刃而解?br>
钥匙定义如下
class Key{
int projectId;// 目的唯一ID
boolean create;
boolean read;
boolean update;
boolean delete;
}
钥匙串定义如下:
class KeyBunch{
Map buch;// 里面攄钥匙的hashMap
boolean isCanAccess(Project project){
.....
}
}
然后把钥匙串作ؓMembercȝ一个子就可以?Key由Projectcȝ?然后附加到MembercȝKeyBunch?其它函数可以Ҏ情况书写.
q样,有了KeycdKeyBunchc?ProjectcdMembercȝ权限关系变得合乎自然了,ProjectcdMembercMq一步解?
老子?人法?地法?天法?道发自然",真是一语中?

]]> - 使用异常处理解决执行时有多种命o行参数的问题http://www.aygfsteel.com/sitinspring/archive/2007/06/08/122817.html如坐春风如坐春风Fri, 08 Jun 2007 04:23:00 GMThttp://www.aygfsteel.com/sitinspring/archive/2007/06/08/122817.htmlhttp://www.aygfsteel.com/sitinspring/comments/122817.htmlhttp://www.aygfsteel.com/sitinspring/archive/2007/06/08/122817.html#Feedback1http://www.aygfsteel.com/sitinspring/comments/commentRss/122817.htmlhttp://www.aygfsteel.com/sitinspring/services/trackbacks/122817.html原执行方式是q样?
>program settingFilePath
其中settingFilePath是xml格式
要求q加q样的执行方?br>>program param01 param02 ....
面对q样的需?E序l构无需有大的变?使用try...catch...来增加一U异常处理即?br>
变化后的E序l构如下:
try{
// q行原有处理
......
}catch(IllegalSettingFileException ex){
// q行命o行方式处?br>}
....
因ؓ原程序处理时会读取设定文?取出其中信息,如果文g不存在或者取得的参数不正则会抛出IllegalSettingFileException 异常,q时我们让它再执行追加的处理方式卛_.即程序发现按W一U方式执行不了时,会按W二U方式运?我觉得这比分支判断更单且易于扩充,是比较好的一U处理方?

]]> - 从一个例子的重构q程谈开?/title>http://www.aygfsteel.com/sitinspring/archive/2007/06/06/122326.html如坐春风如坐春风Wed, 06 Jun 2007 03:37:00 GMThttp://www.aygfsteel.com/sitinspring/archive/2007/06/06/122326.htmlhttp://www.aygfsteel.com/sitinspring/comments/122326.htmlhttp://www.aygfsteel.com/sitinspring/archive/2007/06/06/122326.html#Feedback2http://www.aygfsteel.com/sitinspring/comments/commentRss/122326.htmlhttp://www.aygfsteel.com/sitinspring/services/trackbacks/122326.html阅读全文

]]> - 能ؓ你的E序锦上添花的五U程序组lŞ?/title>http://www.aygfsteel.com/sitinspring/archive/2007/06/05/122119.html如坐春风如坐春风Tue, 05 Jun 2007 05:00:00 GMThttp://www.aygfsteel.com/sitinspring/archive/2007/06/05/122119.htmlhttp://www.aygfsteel.com/sitinspring/comments/122119.htmlhttp://www.aygfsteel.com/sitinspring/archive/2007/06/05/122119.html#Feedback10http://www.aygfsteel.com/sitinspring/comments/commentRss/122119.htmlhttp://www.aygfsteel.com/sitinspring/services/trackbacks/122119.html形式?"只管l果,不顾q程":从集合中取区间元素时,直接从上下限之间取来,让try...catch...d理越界的?
形式?"奉旨行事":在查询中,如果把查询条件和遴选过E分开来更有益,E序也因此解耦合.q才是OO化的查询.
形式?"化繁为简":多个分支语句变换ؓ一个查表结?q样做对扩充E序l构,修改具体数额都很方便,使程序更易于l护.q可以把归结出的表结构放在持久介质中如XML文g,数据库等,用到的时候再?q样做在条g变化时不需要修改程?
形式?"分而治?:分支语句的执行部分分散到单独的cM处理,降低了系l耦合?E序也更Ҏl护. 阅读全文
]]> - 以相Cؓ切入点谈谈?接口和抽象类http://www.aygfsteel.com/sitinspring/archive/2007/06/04/121715.html如坐春风如坐春风Sun, 03 Jun 2007 17:33:00 GMThttp://www.aygfsteel.com/sitinspring/archive/2007/06/04/121715.htmlhttp://www.aygfsteel.com/sitinspring/comments/121715.htmlhttp://www.aygfsteel.com/sitinspring/archive/2007/06/04/121715.html#Feedback1http://www.aygfsteel.com/sitinspring/comments/commentRss/121715.htmlhttp://www.aygfsteel.com/sitinspring/services/trackbacks/121715.htmll承,接口,抽象cȝ区别是面试官最喜欢问的问题,因ؓ~程中常?q里不想说那些老生常谈,只想借相声打个比?
l承好比家学渊源,所?忠厚传家?诗书l世?,安M潜移默化的媄响下一?下一代也会在不经意中学习前辈的特?但因为年分辨能力不高加上世易时UL些优点已l不再是有点甚至会变成缺?下一代会把前辈的优缺点不分良莠的l承下来.q也是日后出现问题的Ҏ.
接口好比拜师学艺,"入了q个?得说这行话",比如相声界说学逗唱四门是必要学的,但是"师傅领进?修行在个?,学得怎么栯全看自己,指望不费力的l承什么是不可能的,具体功夫q得个h来过. 因ؓ是自己来,具体实现成什么样自由度也很大,比如四门功课中的"?,原指唱太qx?但因为爱听的?现在相声演员已经不要求这个了,改ؓ唱歌唱戏的唱,其实严格界定的话??的一U?q也无所谓对?郭d刚坚持唱太^歌词也行,W林唱流行歌曲也不错,M实现了就可以,实现得怎么样则留给实践来检?一个类可以同时实现多个接口,和Zh拜几个师傅是没有问题?郭d刚就同时实现了大鼓和相声两个接口.
抽象cd介于l承和接口之?既可不费力的从上一代?也可强制实现某接?有如某大师收自己的孩子ؓ?当然相声界不让这么干,其它曲艺行业q是可以?比如京剧界的梅兰芛_其子梅葆?既有a传n?也有强制实现,l合了承和接口的特?
具体怎么用它们要看实际需?如果是ؓ了实现承体p?当然是用l承;如果只是强制子类必须和父cȝ一口径,自然是用接口;如果子类说统一口径?但必ȝ我些东西,那还是用抽象cM?

]]> - 使用XML文g作ؓWebpȝ持久层的OO分析q程http://www.aygfsteel.com/sitinspring/archive/2007/06/03/121640.html如坐春风如坐春风Sun, 03 Jun 2007 08:15:00 GMThttp://www.aygfsteel.com/sitinspring/archive/2007/06/03/121640.htmlhttp://www.aygfsteel.com/sitinspring/comments/121640.htmlhttp://www.aygfsteel.com/sitinspring/archive/2007/06/03/121640.html#Feedback0http://www.aygfsteel.com/sitinspring/comments/commentRss/121640.htmlhttp://www.aygfsteel.com/sitinspring/services/trackbacks/121640.html
最Ҏ直接惛_的是一个类完成节点的CRUD及IO操作,但这q反了类的设计原?-cd当只有一个中心Q?
所以按功能来分我们必须要两个类:
一个类负责节点CRUD操作;// UCrudClass
一个类负责节点的IO操作;// UIoClass
q样基本可以?再细分下L有必?
再来看第一个类,它是直接与一批业务代码打交道?
首先要求速度要快,如果把解析出来的Dom攑֜c里,一则CrudClass做了IoClass做的?二再速度上也上不?所以这里我把dom里面的节点对应成了一个链?一个值和一个Map,业务代码实际处理的就是这三个东西,他们不关心也不必要知道是否存储到了文仉,而且速度上得C充分保证.
其次各个业务代码处理的是同一事务,q里再把CrudClass做成单例(Singleton)形式?做成全静态也可以,但这U做法不太上台面.
IoClass是CrudClass的持久化操作,他们之间实际是仓库管理员和物调度间的关p?q种关系有以下三U实现方?
1.在他们间实现观察者模?/strong>,由IoClass来观察CrudClass,变化后写入文?初看q种方式很好的完成了解偶,实际上IoClassq是需要知道CrudClass的细?否则无法更新,而且创徏IoClass的过E比较麻?客观世界可没有这L处理.所以说观察者处理当抛弃.
2.IoClass作ؓCrudClass的成?/strong>,q种方式避免了IoClass创徏的不必要的复杂过E?而且CrudClass知道IoClass的处理接口就行了,IoClass无需知道CrudClass的Q何部?实现了有效解?其三W合现实世界,IoClass实应该是CrudClass的下U?只接受CrudClass指派的Q务而外界无ȝ道IoClass,完全不必知道.
3.IoClass独立处理出来,与CrudClass{做成JMS异步通信方式或WebService通信方式,q个x更OO,但是成本比较?复杂度大,在大型系l可以考虑实现q种Ҏ.
l合上面的意?选择Ҏ2是最适合?
x对一个XML文gq行CRUD操作的系l设计完?再适当剥离一些通用代码形成实用cd差不多了,q里不再赘述.
q是那句老话,道法自然.E序实现可以有NU实现方?我们应该选择最W合自然的一U?

]]>
վ֩ģ壺
|
|
|
ɽ|
Ϫ|
Һ|
|
|
|
|
|
ˮ|
|
пѷ|
|
ɽ|
Ͼ|
|
|
|
½|
|
|
|
|
żҸ|
|
ϳ|
|
|
|
|
Ϫ|
º|
Ĭ|
ƽ|
¡|
Դ|
ɽ|
ˮ|
|