23种设计模式UML类图及对应示例代码Word格式文档下载.docx
《23种设计模式UML类图及对应示例代码Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《23种设计模式UML类图及对应示例代码Word格式文档下载.docx(53页珍藏版)》请在冰豆网上搜索。

DoFactory.GangOfFour.Abstract.Structural
{
///
<
summary>
MainApp
startup
class
for
Structural
Abstract
Factory
Design
Pattern.
/summary>
MainApp
Entry
point
into
console
application.
public
static
void
Main()
//
factory
#1
AbstractFactory
factory1
=
new
ConcreteFactory1();
Client
client1
Client(factory1);
client1.Run();
#2
factory2
ConcreteFactory2();
client2
Client(factory2);
client2.Run();
Wait
user
input
Console.Read();
}
"
AbstractFactory"
abstract
AbstractFactory
AbstractProductA
CreateProductA();
AbstractProductB
CreateProductB();
ConcreteFactory1"
ConcreteFactory1
:
override
CreateProductA()
return
ProductA1();
CreateProductB()
ProductB1();
ConcreteFactory2"
ConcreteFactory2
ProductA2();
ProductB2();
AbstractProductA"
AbstractProductA
AbstractProductB"
AbstractProductB
Interact(AbstractProductA
a);
ProductA1"
ProductA1
ProductB1"
ProductB1
a)
Console.WriteLine(this.GetType().Name
+
interacts
with
a.GetType().Name);
ProductA2"
ProductA2
ProductB2"
ProductB2
Client"
-
the
interaction
environment
of
products
Client
private
AbstractProductA;
AbstractProductB;
Constructor
Client(AbstractFactory
factory)
factory.CreateProductB();
factory.CreateProductA();
Run()
AbstractProductB.Interact(AbstractProductA);
2.DoFactory.GangOfFour.Adapter.Structural
Adapter:
将一个类的接口转换成客户希望的另一个接口,使得原来由于接口不兼容而不能一起工作的那些类可以一起工作。
适配器(变压器)模式:
把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口原因不匹配而无法一起工作的两个类能够一起工作。
适配类可以根据参数返还一个合适的实例给客户端。
DoFactory.GangOfFour.Adapter.Structural
Adapter
Create
adapter
and
place
a
request
Target
target
Adapter();
target.Request();
user
Target"
Target
virtual
Request()
Console.WriteLine("
Called
Request()"
);
Adapter"
Adaptee
adaptee
Adaptee();
Possibly
do
some
other
work
then
call
SpecificRequest
adaptee.SpecificRequest();
Adaptee"
Adaptee
SpecificRequest()
SpecificRequest()"
3.DoFactory.GangOfFour.Bridge.Structural
Bridge:
将抽象部分与它的实现部分分离,使之可以独立变化。
桥梁模式:
将抽象化与实现化脱耦,使得二者可以独立的变化,也就是说将他们之间的强关联变成弱关联,也就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两