讀banq的設計模式+最近的面試
最近經歷了好多場面試
都有意無意的問到了模式
我自己是很中意模式的
因為程式設計中加入模式後,可讓程式的可複用性可維護性強了
讓程式設計看起來像藝術了
讓自己不再累死在code上了
很熟悉吧,有些話是從banq哪裡學過來的
面試中面試官問我的幾個模式問題
1,解釋 橋接模式
2,log4j用了什麼模式
寫出兩種單例模式
3,寫出facade模式的
典型程式碼
很高興他們會問模式,雖然我有些沒有答出來
其中橋接模式我沒有答出來
回來後,我看了下,原來我看過好幾次的,是抽象與行為分離
問題形象描述:
小杯咖啡加牛奶 小杯咖啡不加牛奶
中杯咖啡加牛奶 中杯咖啡不加牛奶
大杯咖啡加牛奶 大杯咖啡不加牛奶
問題的可變元素 不加牛奶而是加葡萄果汁呢
那麼是不是又有很多種呢
有沒有辦法解決呢,橋接模式
類 咖啡
屬性(抽象),杯子
行為,加牛奶
把他們分離,這就是橋接模式(將屬性與行為解耦)
對抽象程式設計
責任劃分,把加牛奶\不加牛奶這種行為,劃分給誰合適呢
這是個要考慮的問題,這個每個人的想法不同,理由不同,可做不同的設計
下面程式碼過程中,我們主要關注屬性怎麼與行為分離
public abstract class Coffee{
private CoffeeImpl coffeeImpl;
//需要加把coffeeImpl例項化了
public void pour(){
coffeeImpl.pour();
}
}
public interface class CoffeeImpl{
public void pour();
}
public MilkCoffeeImpl implements CoffeeImpl{
public void pour(){
System.out.println("我是要加牛奶的");
}
}
橋接模式,看看名字,我想我們應該能想得到,那個是橋,為什麼是橋,怎麼橋接的
如果把杯子大小抽象為屬性
那麼好像跟策略模式有些相似呀,簡直一模一樣呀
log4j,是全域性的,還有管理日記資源的,所以很容易想到是單例模式的
facade模式
就有理清關係和能提供簡單介面的功能呀
banq書的facade模式一章中,裡畫了兩張圖,一看就明白了
不過他讓我寫出典型程式碼我就不知所措了
持有一個複雜類的引用
在抽象出的簡單的介面的實現中,呼叫複雜類的方法
這麼實現有點疑惑,怎麼有點像適配模式呀
不同的模式有不同的問題域
應該有不同的解決方案呀,我怎麼看起來有些方案相同呀
疑惑
明天再接著看書,找資料看看能不能解決這些問題
都有意無意的問到了模式
我自己是很中意模式的
因為程式設計中加入模式後,可讓程式的可複用性可維護性強了
讓程式設計看起來像藝術了
讓自己不再累死在code上了
很熟悉吧,有些話是從banq哪裡學過來的
面試中面試官問我的幾個模式問題
1,解釋 橋接模式
2,log4j用了什麼模式
寫出兩種單例模式
3,寫出facade模式的
典型程式碼
很高興他們會問模式,雖然我有些沒有答出來
其中橋接模式我沒有答出來
回來後,我看了下,原來我看過好幾次的,是抽象與行為分離
問題形象描述:
小杯咖啡加牛奶 小杯咖啡不加牛奶
中杯咖啡加牛奶 中杯咖啡不加牛奶
大杯咖啡加牛奶 大杯咖啡不加牛奶
問題的可變元素 不加牛奶而是加葡萄果汁呢
那麼是不是又有很多種呢
有沒有辦法解決呢,橋接模式
類 咖啡
屬性(抽象),杯子
行為,加牛奶
把他們分離,這就是橋接模式(將屬性與行為解耦)
對抽象程式設計
責任劃分,把加牛奶\不加牛奶這種行為,劃分給誰合適呢
這是個要考慮的問題,這個每個人的想法不同,理由不同,可做不同的設計
下面程式碼過程中,我們主要關注屬性怎麼與行為分離
public abstract class Coffee{
private CoffeeImpl coffeeImpl;
//需要加把coffeeImpl例項化了
public void pour(){
coffeeImpl.pour();
}
}
public interface class CoffeeImpl{
public void pour();
}
public MilkCoffeeImpl implements CoffeeImpl{
public void pour(){
System.out.println("我是要加牛奶的");
}
}
橋接模式,看看名字,我想我們應該能想得到,那個是橋,為什麼是橋,怎麼橋接的
如果把杯子大小抽象為屬性
那麼好像跟策略模式有些相似呀,簡直一模一樣呀
log4j,是全域性的,還有管理日記資源的,所以很容易想到是單例模式的
facade模式
就有理清關係和能提供簡單介面的功能呀
banq書的facade模式一章中,裡畫了兩張圖,一看就明白了
不過他讓我寫出典型程式碼我就不知所措了
持有一個複雜類的引用
在抽象出的簡單的介面的實現中,呼叫複雜類的方法
這麼實現有點疑惑,怎麼有點像適配模式呀
不同的模式有不同的問題域
應該有不同的解決方案呀,我怎麼看起來有些方案相同呀
疑惑
明天再接著看書,找資料看看能不能解決這些問題
相關文章
- 關於banq設計模式的培訓設計模式
- 設計模式【12】-- 搞定最近大火的策略模式設計模式
- Banq:看了你的設計模式:Observer,有些疑問設計模式Server
- banq 設計模式中的facade模式的例子是不是不太對啊設計模式
- 被誤讀的設計模式設計模式
- 設計模式面試 - Hamill設計模式面試
- 《從設計到模式》——解讀設計模式設計模式
- 讀過的設計模式的書小結設計模式
- 最近的兩次面試面試
- 讀《圖解設計模式》的所思所想圖解設計模式
- 【Java面試】Java設計模式面試題!Java設計模式面試題
- 人人都能讀懂的設計模式(1):建立型模式設計模式
- 【設計模式】設計模式(一)-- 大話設計模式讀書筆記設計模式筆記
- 人人都能讀懂的設計模式(2):結構型模式設計模式
- 人人都能讀懂的設計模式(3):行為型模式設計模式
- 請教banq大哥,領域模型的設計模型
- 淺讀設計模式 - 1設計模式
- 2.設計模式的分類—精讀《JavaScript 設計模式》Addy Osmani著設計模式JavaScript
- 最近讀的最棒的一本書:《產品經理面試攻略》面試
- [面試專題]JS設計模式面試JS設計模式
- 設計模式常見面試題設計模式面試題
- 【設計模式】設計模式的分類設計模式
- 《我是面試官》設計模式-單例模式面試設計模式單例
- Android面試題之Android中的設計模式Android面試題設計模式
- 讀《大話設計模式》和《head first 設計模式》心得設計模式
- 【設計模式】漢堡中的設計模式——策略模式設計模式
- 圖解Java設計模式-面試題圖解Java設計模式面試題
- Android面試之Java設計模式Android面試Java設計模式
- 設計模式讀書筆記-命令模式薦設計模式筆記
- 【設計模式】最常用的設計模式之一的觀察者模式設計模式
- 記錄最近的幾次面試(PHP)面試PHP
- 請教banq大哥:資料庫設計的問題!!!資料庫
- 【設計模式】漢堡中的設計模式——觀察者模式設計模式
- banq 你好,請教模式模式
- 你好,BANQ,請教模式模式
- 你好banq,請教模式模式
- 設計模式——代理模式的思考設計模式
- 設計模式的設計原則設計模式