当前位置: 首页 > news >正文

flash网站收录智慧团建手机登录端口

flash网站收录,智慧团建手机登录端口,网站开发前期方案,育贤网站建设23种设计模式的定义和应用场景: 1. 创建型模式(共5种): 单例模式(Singleton)、工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式…

23种设计模式的定义和应用场景:

1. 创建型模式(共5种):

        单例模式(Singleton)、工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)、原型模式(Prototype)

2. 结构型模式(共7种):

        适配器模式(Adapter)、桥接模式(Bridge)、组合模式(Composite)、装饰器模式(Decorator)、外观模式(Facade)、享元模式(Flyweight)、代理模式(Proxy)

3. 行为型模式(共11种):

        责任链模式(Chain of Resposibility)、命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、中介者模式(Mediator)、备忘录模式(Mementor)、观察者模式(Oberver)、状态模式(State)、策略模式(Strategy)、模板方法模式(Template Method)、访问者模式 (Visitor)

2-结构型模式-C#代码

2. 结构型模式

2.1 适配器模式 (Adapter)

定义: 将一个类的接口转换成客户希望的另一个接口。
应用场景: 集成第三方库、旧系统升级。

public class Adaptee
{public void SpecificRequest() => Console.WriteLine("Specific Request");
}public interface ITarget
{void Request();
}public class Adapter : ITarget
{private Adaptee _adaptee = new Adaptee();public void Request() => _adaptee.SpecificRequest();
}
2.2 桥接模式 (Bridge)

定义: 将抽象部分与实现部分分离,使它们可以独立变化。
应用场景: 跨平台应用、图形绘制。

public interface IImplementor
{void OperationImpl();
}public class ConcreteImplementorA : IImplementor
{public void OperationImpl() => Console.WriteLine("ConcreteImplementorA Operation");
}public abstract class Abstraction
{protected IImplementor _implementor;public Abstraction(IImplementor implementor) => _implementor = implementor;public abstract void Operation();
}public class RefinedAbstraction : Abstraction
{public RefinedAbstraction(IImplementor implementor) : base(implementor) { }public override void Operation() => _implementor.OperationImpl();
}
2.3 组合模式 (Composite)

定义: 将对象组合成树形结构以表示“部分-整体”的层次结构。
应用场景: 文件系统、UI组件。

public abstract class Component
{public abstract void Operation();public virtual void Add(Component component) => throw new NotImplementedException();public virtual void Remove(Component component) => throw new NotImplementedException();
}public class Leaf : Component
{public override void Operation() => Console.WriteLine("Leaf Operation");
}public class Composite : Component
{private List<Component> _children = new List<Component>();public override void Operation() => _children.ForEach(c => c.Operation());public override void Add(Component component) => _children.Add(component);public override void Remove(Component component) => _children.Remove(component);
}
2.4 装饰器模式 (Decorator)

定义: 动态地给对象添加额外的职责。
应用场景: 日志记录、权限检查。

public abstract class Component
{public abstract void Operation();
}public class ConcreteComponent : Component
{public override void Operation() => Console.WriteLine("ConcreteComponent Operation");
}public abstract class Decorator : Component
{protected Component _component;public Decorator(Component component) => _component = component;public override void Operation() => _component.Operation();
}public class ConcreteDecoratorA : Decorator
{public ConcreteDecoratorA(Component component) : base(component) { }public override void Operation(){base.Operation();Console.WriteLine("ConcreteDecoratorA Operation");}
}
2.5 外观模式 (Facade)

定义: 提供一个统一的接口,用来访问子系统中的一群接口。
应用场景: 简化复杂系统的使用。

public class SubsystemA
{public void OperationA() => Console.WriteLine("SubsystemA Operation");
}public class SubsystemB
{public void OperationB() => Console.WriteLine("SubsystemB Operation");
}public class Facade
{private SubsystemA _subsystemA = new SubsystemA();private SubsystemB _subsystemB = new SubsystemB();public void Operation(){_subsystemA.OperationA();_subsystemB.OperationB();}
}
2.6 享元模式 (Flyweight)

定义: 通过共享技术有效地支持大量细粒度的对象。
应用场景: 文本编辑器中的字符对象。

public class Flyweight
{private string _intrinsicState;public Flyweight(string intrinsicState) => _intrinsicState = intrinsicState;public void Operation(string extrinsicState) => Console.WriteLine($"Intrinsic: {_intrinsicState}, Extrinsic: {extrinsicState}");
}public class FlyweightFactory
{private Dictionary<string, Flyweight> _flyweights = new Dictionary<string, Flyweight>();public Flyweight GetFlyweight(string key){if (!_flyweights.ContainsKey(key)){_flyweights[key] = new Flyweight(key);}return _flyweights[key];}
}
2.7 代理模式 (Proxy)

定义: 为其他对象提供一个代理以控制对这个对象的访问。
应用场景: 远程代理、虚拟代理、保护代理。

public interface ISubject
{void Request();
}public class RealSubject : ISubject
{public void Request() => Console.WriteLine("RealSubject Request");
}public class Proxy : ISubject
{private RealSubject _realSubject;public void Request(){if (_realSubject == null){_realSubject = new RealSubject();}_realSubject.Request();}
}

http://www.hyszgw.com/news/42374.html

相关文章:

  • 网站规划的基本原则vs python 网站开发
  • 适合个人做的网站有哪些东西吗app开发公司广州英诺
  • php网站开发实例教程书天乐测绘网做网站吗
  • 服务器php网站打不开个人注册公司代理
  • 花店做网单的网站wordpress固定链接优化
  • pc网站怎么做适配手机软件开发app下载
  • 怎么在手机上做微电影网站不要轻易注册一家公司
  • 教育网站备案网站域名被抢注
  • 手机网站怎样做的南京网站建设雷仁网络
  • 电子商务网站开发实务天津市武清区建设银行网站
  • 网站建设内页做网站万网
  • 成立公司需要哪些手续seo刷关键词排名优化
  • 用什么软件做购物网站百度文库首页官网
  • 深圳制作网站哪家好丫个网站建设博客
  • 廊坊网站建设模板兰州自媒体公司有哪些
  • 广东网站建设联系商贸网站建设
  • 摄影网站的需求分析网站建设 美词原创
  • 网站类网站开发教程美食网站开发目的
  • 邯郸网站设计哪家好闲鱼上做网站
  • .net开发网站的优点民宿网站开发方案
  • 渭南做网站哪家好郑州校园兼职网站建设
  • 聊城网站开发培训泰安网红打卡地
  • 帮助做职业规划的网站wordpress优化
  • 嘉兴网站建设制作sas wordpress 插件
  • 企业网站优化应该怎么做好用的免费国内ip代理
  • 做企业网站的缺点成都seo优化外包公司
  • 网站栏目页面做网站用php还是html
  • 下列关于网站开发wordpress 外贸主题
  • 知乎 网站建设郑州网站做网站
  • 网站只收录无权重做景观的网站