常用的设计模式和代码

本文探讨了设计模式的重要性和在软件开发中的应用,包括工厂方法模式(延迟实例化)、适配器模式(接口转换)、桥接模式(抽象与实现解耦)、装饰模式(动态增加职责)和外观模式(提供统一接口)。通过实例解析,阐述了这些模式如何促进代码的灵活性、可维护性和可扩展性。
摘要由CSDN通过智能技术生成

设计模式是软件开发讨论中,亘古不变的话题,今天又拿出来说道两句,也是对设计模式的一个复习吧。


工厂方法模式

       工厂方法模型定义了一个用于创建对象的接口,让子类决定实例化哪一个类,工厂模式使一个类的实例化延迟到了其子类中。工厂方法模式是优化的简单工厂模式,它很好的支持了“开闭原则”。每一个具体的工厂只能构建一个类的对象。具体工厂类与产品类是一对一的关系。

/// <summary>  
/// 抽象产品类
/// </summary>  
public class Product{
	public Product(){
		Console.Write("new Product");
	} 
}

/// <summary>  
/// 具体产品类A
/// </summary>
public class ConcreteProductA:Product {
	public ConcreteProduct(){
		Console.Write("创建了一个 ConcreteProductA");
	}
}

/// <summary>  
/// 具体产品类B
/// </summary>
public class ConcreteProductB:Product {
	public ConcreteProduct(){
		Console.Write("创建了一个 ConcreteProductB");
	}
}

/// <summary>  
/// 抽象的创建者
/// </summary>
abstract public class Creator{
	
	//抽象的工厂方法
	public abstract Product FactoryMethod();
	
}

/// <summary>  
/// 具体方法工厂A
/// </summary>
public class ConcreteCreatorA:Creator{
	//返回一个产品A的对象
	public override Product FactoryMethod(){
		return new ConcreteProductA();
	}
}

/// <summary>  
/// 具体方法工厂B
/// </summary>
public class ConcreteCreatorB:Creator{
	//返回一个产品B的对象
	public override Product FactoryMethod(){
		return new ConcreteProductB();
	}
}

//client端
static void Main(string[] args)  
{  
    Creator c = new ConcreteCreatorA();
    Product p = c.FcatoryMethod();
    
    c = new ConcreteCreatorB();
    p = c.FcatoryMethod();
    
    Console.ReadLine();
} 


适配器模式Adapter

      适配器模式是将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

      两个成熟的类需要通信,但是接口不同,由于开闭原则,我们不能去修改这两个类的接口,所以就需要一个适配器来完成衔接过程。

      变压器就是很好的适配器模式的例子。用电设备所需要的电压是9V,但是电线上的电压却是220V的,我们不能去更改它们的电压输入或输出,所以我们用到了变压器。变压器是220V的输入,9V的输出。这样就可以将200V的电压变为9V的电压,用变压器将用电设备连接到了电线上工作了。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值