惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Project Zero
Project Zero
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Scott Helme
Scott Helme
Know Your Adversary
Know Your Adversary
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
WordPress大学
WordPress大学
AWS News Blog
AWS News Blog
小众软件
小众软件
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Jina AI
Jina AI
AI
AI
美团技术团队
人人都是产品经理
人人都是产品经理
S
Secure Thoughts
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Visual Studio Blog
宝玉的分享
宝玉的分享
Security Latest
Security Latest
P
Privacy & Cybersecurity Law Blog
C
Cisco Blogs
大猫的无限游戏
大猫的无限游戏
Google Online Security Blog
Google Online Security Blog
L
LINUX DO - 最新话题
罗磊的独立博客
Recent Announcements
Recent Announcements
H
Hacker News: Front Page
博客园 - 【当耐特】
K
Kaspersky official blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
SecWiki News
SecWiki News
Schneier on Security
Schneier on Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Apple Machine Learning Research
Apple Machine Learning Research
F
Full Disclosure
Google DeepMind News
Google DeepMind News
V
V2EX
博客园 - 聂微东
量子位
云风的 BLOG
云风的 BLOG
C
Check Point Blog
J
Java Code Geeks
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
W
WeLiveSecurity
Engineering at Meta
Engineering at Meta
V2EX - 技术
V2EX - 技术
Vercel News
Vercel News
L
LINUX DO - 热门话题
T
The Exploit Database - CXSecurity.com
L
Lohrmann on Cybersecurity
The GitHub Blog
The GitHub Blog

博客园 - 冷风.net

以OO的思想利用JS來實現五子棋 開放幾個原來寫的js代碼,供大家娛樂一下 使用JS寫的第一個游戲[俄羅斯方塊] 假如現在讓你去說服客戶使用asp.net2.0開發系統,你會怎麼說服呢? 對象化javascript日期控件 - 冷风.net - 博客园 工作排程 防止圖片在WEB頁面上下載 - 冷风.net - 博客园 今天從新整理的大小寫數據轉換 - 冷风.net - 博客园 常用的XPATH說明 XmlHttp在DoNet中的完全应用---前/后台完成分离篇 系统用户权限与角色分析 学习设计模式之Composite 模式 改進Richer的WEB頁面進度條! 学习设计模式之生成器(Builder Pattern)模式 再谈Abstract Factory模式来实现数据库操作的类 Factory Method来实现数据库操作的类 不周表結構合併問題 今天下午困惑的問題,終於TMD搞出來了 利用線程實現錠時執行的運行模型
学习设计模式之Bridge模式
冷风.net · 2005-03-07 · via 博客园 - 冷风.net

今天看了设计模式中的Bridge模式,所以列出自己对其的认识:

Bridge模式:指的是将一事件的抽象与行为分开来,也就是说使对象的属性与方法之间藕合度降低.

使用Bridge模式的好处:当给对象增加新的属性时只需要继承这个对象的抽象属性接口就行了,当给对象增加新的方法时只需要继承这个对象的抽象方法接口噈OK了。这样就使用一个对象的属性与方法完成分开来了。

现以本人在机子上玩游戏为例来说明Bridge模式:
1.对象属性方面:
先创建一个抽象类来说明在什么系统下玩游戏
再创建具体的属性类如Windows98系统与windows2000系统
2.对象方法方面:
先创建一个抽象来来说明玩游戏
再创建具体的类来说明正在玩什么游戏

using System;

namespace DesignPatterns.BirdgePattern
{
    
/// <summary>
    
/// 定義計算機類型的抽象類(接口)
    
/// </summary>

    abstract public class ComputerSystem
    
{
        
abstract public string PlayGame();
    }

    
/// <summary>
    
/// 定義Windows98系統
    
/// </summary>

    public class Windows98 : ComputerSystem
    
{
        
public override string PlayGame()
        
{
            
return "Window98";
        }

    }

    
/// <summary>
    
/// 定義Windows2000系統
    
/// </summary>

    public class Windows2000 : ComputerSystem
    
{
        
public override string PlayGame()
        
{
            
return "Windows2000";
        }

    }

    
/// <summary>
    
/// 定義游戲的抽象類(接口)
    
/// </summary>

    abstract public class Game
    
{
        
protected ComputerSystem computerSystem;
        
public ComputerSystem SetComputerSystem
        
{
            
set{computerSystem=value;}
        }

        
public abstract string Play();
    }

    
/// <summary>
    
/// 定義星際類
    
/// </summary>

    public class StartCarft : Game
    
{
        
public override string Play()
        
{
            
string systemName = computerSystem.PlayGame();
            
return "正在" + systemName + "系統下玩星際爭霸";
        }

    }

    
/// <summary>
    
/// 定義敵國類
    
/// </summary>

    public class AgeOfEmpire : Game
    
{
        
public override string Play()
        
{
            
string systemName = computerSystem.PlayGame();
            
return "正在" + systemName + "系統下玩帝國時代";
        }

    }

}

接著來看看該如何調用了:

Game objGame = new AgeOfEmpire();// new StartCarft(); //創建所玩游戲的對象
            objGame.SetComputerSystem = new Windows2000();//new Windows98(); //指定是在哪個系統下玩游戲
            label1.Text = objGame.Play();

接著來看看該如何調用了: