軟件應該是可以擴展的,但是不可以修改的。對擴展都是開放的,模塊式可以擴展來滿足新的行為,我們可以改變模塊的功能。OCP的好處是,盡可能的減少修改模塊的次數和范圍,從而提高代碼的可維護性,復用性。比如操作系統的升級補丁,在修復bug的情況下,肯定是越小越小。如果說OCP做的不好,每次修改需要修改大量的文件,那就會導致補丁很大。對于修改是封閉的,在擴展模塊的時候,不必改動源代碼的二進制文件,不管是.o文件還是.dll文件都不用改動。問題的核心是怎么樣改變了模塊
系統 2019-08-12 01:32:46 2652
一般我們編寫C程序時,要調用某個文件中的函數,需要在本文件中包含聲明有被調用函數的頭文件,然后編譯連接后,方能找到調用函數。對于模塊依賴的情況,不能簡單的使用上面的方法,內核提供了一個機制,就是EXPORT_SYMBOL標簽內定義的函數或者符號對全部內核代碼公開,不用修改內核代碼就可以在您的內核模塊中直接調用,即使用EXPORT_SYMBOL可以將一個函數以符號的方式導出給其他模塊使用。您還可以手工修改內核源代碼來導出另外的函數,用于重新編譯并加載新內核后
系統 2019-08-12 01:53:55 2651
Q:如果我想做Vlan實驗,"c3640-telco-mz.123-11.T.bin"這個版本的IOS支持Vlan中的交換機命令嗎?A:交換模塊是二層設備,所以不能設置IP地址,用noswitchport后可以設置,這個版本支持VLAN,命令是vlandatabaseQ:那個"noswitchport"是在全局模式router(config)#使用嗎?還有我做交換實驗時,必須在全局模式下先使用"noiproute"關閉端口路由嗎?A:noswitchpor
系統 2019-08-12 01:32:25 2651
本文探討一些SQLServer常見的安全問題,是給初入SQLServer的人看的,寫的肯定很絮叨,高手勿讀。本文的用的是SQLServer2000,下文中都簡寫為SQLServer。一、空口令或弱口令初學者在安裝SQLServer時為了省事,SQLServer管理員sa用的是空口令或弱口令,這樣危險性十分巨大,而這些危險往往是初學者意識不到的,小王就覺得,自己的庫是試驗數據,沒什么用,即使別人連上庫也無所謂。殊不知SQLServer的默認用戶sa的權限非常
系統 2019-08-29 22:59:26 2650
PS:更新中……創建用戶:可指定用戶表空間和臨時表空間createusermyuseridentifiedby123456defaulttablespacemytabletemporarytablespacetmp_table;用戶授權:可以根據需要選擇權限。GRANTCREATEUSER,DROPUSER,ALTERUSER,CREATEANYVIEW,DROPANYVIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,DBA
系統 2019-08-12 09:30:37 2650
首先創建一個簡單的user表CREATETABLE`user`(`id`intNOTNULLAUTO_INCREMENT,`name`varchar(255)NULL,`sex`varchar(255)NULL,`age`intNULL,`address`varchar(255)NULL,PRIMARYKEY(`id`));然后插入數據insertinto`user`(`name`,`sex`,`age`,`address`)values('張三','男'
系統 2019-08-12 01:55:16 2650
1.自動備份可以采用exp方式(前提是你要有導出的權限),并寫一個操作系統的腳本,如果windows系統,可寫一個bat,在其中使用exp進行導出,然后將BAT添加計劃任務。backup.bat--代碼如下:echooffexpsystem/sa@orclfile=d:\autobackup\ies%date%.dmplog=d:\autobackup\ies%date%_exp.logowner=(ies)buffer=655000compress=yp
系統 2019-08-12 01:54:45 2650
要實現讀寫分離,可以先看看如何實現mysql數據庫主從:http://www.cnblogs.com/sustudy/p/4174189.htmlmysql-proxy下載地址(要看好對應版本):http://dev.mysql.com/downloads/mysql-proxy/讀寫分離實驗環境:mysql-proxy服務器的IP地址:192.168.20.3主數據庫的ip地址:192.168.20.4從數據庫的ip地址:192.168.20.5步驟如下
系統 2019-08-12 01:54:15 2650
--視圖的主意點:不能和表的名稱相同,如果某一列為函數,表達式,常量或者與來自多張表的列名相同,必須為列定義名稱,不能在試圖上創建索引ifexists(select1fromsys.sysobjectswhere[name]='view_recordInfo')dropviewview_recordInfogocreateviewview_recordInfoasselect記錄編號=r.Recordld,會員卡號=r.BeginTime,電腦編號=p.P
系統 2019-08-12 01:55:28 2649
幾年前,我作為一個顧問,著手處理一個已經快要失敗的項目了。顧客和開發商簽訂的合約是在一年之內開發完那個項目。當我被叫過去的時候,時間已經過去一年了。顯而易見,這個項目失敗了。主要問題出在開發商的設計和技術方面(我們暫時先不管Weinberg準則。“Nomatterwhattheytellyou,it'salwaysapeopleproblem”)。開發商認為可以借此機會開發一個可以通用的軟件系統,而且他們認為可以在顧客的預算之內開發完這個系統。這些想法就導
系統 2019-08-12 01:55:25 2649
在調用存儲過程中,就會涉及到表鎖,行鎖這一概念:所謂區別:有索引的時候就是行鎖,沒有索引的時候就是表索。innodb的行鎖是在有索引的情況下,沒有索引的表是鎖定全表的.表鎖演示(無索引)Session1:mysql>setautocommit=0;mysql>select*frominnodb_test;+------+-------------+|id|name|+------+-------------+|1|woshiceshi||2|woshice
系統 2019-08-12 01:54:26 2649
原文:SQLServer連接問題-命名管道出自:http://blogs.msdn.com/b/apgcdsd/archive/2011/01/12/sql-server-1.aspx一。前言在使用SQLServer的過程中,用戶遇到的最多的莫過于連接問題了。本文將深度討論SQLServer連接問題的方方面面,希望能幫你徹底解決SQLserver的連接問題。SQLServer支持的通訊協議很多,如命名管道(NamedPipes)、TCP/IP套接字、共享內
系統 2019-08-12 01:54:23 2649
資源名稱:PHP和MySQL+WEB開發(中文高清第4版)資源類型:PDF適合對象:編程愛好者和編程高手下載地址:本帖隱藏的內容PHP和MySQL+WEB開發(中文高清第4版)原帖地址:http://www.phpjava.org/forum.php?mod=viewthread&tid=125本文來自:PHP&Java論壇|技術交流社區[www.phpjava.org]PHP和MySQL+WEB開發(中文高清第4版)
系統 2019-08-29 23:49:02 2647
ListlistAll=newList();listAll.Add(newtestInfo(){id=1,name="11",test="111"});listAll.Add(newtestInfo(){id=2,name="22",test="222"});listAll.Add(newtestInfo(){id=3,name="33",test="333"});listAll.Add(newtestInfo(){
系統 2019-08-12 01:53:41 2647
原文:SQL點滴5—產生時間demention,主要是時間轉換數據倉庫中有時間表,存儲時間信息,這個存儲過程接收開始時間結束時間,寫入時間具體信息。有高手用excel函數功能很快能產生INSERT語句不會啊,只能用這個。參考知識??????????????1vSETANSI_NULLSON2GO34SETQUOTED_IDENTIFIERON5GO67/*---------------------------------------------------
系統 2019-08-12 01:33:31 2646