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

快速建站系统移动网站开发教材

快速建站系统,移动网站开发教材,微信 公司网站 怎么做,做网站要不要交税设计模式是一套被广泛应用于软件设计的最佳实践#xff0c;它们可以帮助开发者解决特定的问题#xff0c;提高代码的可重用性、可读性和可维护性。本文将介绍 C# 中常见的几种设计模式#xff0c;并提供相应的示例代码。 工厂模式 工厂模式是一种创建型设计模式#xff0c… 设计模式是一套被广泛应用于软件设计的最佳实践它们可以帮助开发者解决特定的问题提高代码的可重用性、可读性和可维护性。本文将介绍 C# 中常见的几种设计模式并提供相应的示例代码。 工厂模式 工厂模式是一种创建型设计模式它提供了一种将对象的创建过程与使用过程分离的方式。它通过定义一个工厂类使得客户端代码可以从工厂类中获取所需的对象而无需知道对象的具体创建过程。 以下是工厂模式的一个示例 public interface IProduct {void DoSomething(); }public class ProductA : IProduct {public void DoSomething(){Console.WriteLine(ProductA does something.);} }public class ProductB : IProduct {public void DoSomething(){Console.WriteLine(ProductB does something.);} }public class ProductFactory {public IProduct CreateProduct(string type){switch (type){case A:return new ProductA();case B:return new ProductB();default:throw new ArgumentException(Invalid product type);}} }class Program {static void Main(string[] args){ProductFactory factory new ProductFactory();IProduct productA factory.CreateProduct(A);IProduct productB factory.CreateProduct(B);productA.DoSomething();productB.DoSomething();Console.ReadKey();} } 在上面的示例中我们定义了 IProduct 接口和两个实现类 ProductA 和 ProductB。然后我们定义了一个工厂类 ProductFactory它可以根据客户端代码传入的参数创建不同的产品对象。 在客户端代码中我们实例化了 ProductFactory 并通过它创建了两个不同的产品对象。这种方式可以使得客户端代码不需要知道对象的具体创建过程从而提高了代码的可重用性和可维护性。 单例模式 单例模式是一种创建型设计模式它保证一个类只有一个实例并提供了全局访问该实例的方式。 以下是单例模式的一个示例 public class Singleton {private static Singleton instance;private Singleton() { }public static Singleton Instance{get{if (instance null){instance new Singleton();}return instance;}}public void DoSomething(){Console.WriteLine(Singleton does something.);} }class Program {static void Main(string[] args){Singleton singleton Singleton.Instance;singleton.DoSomething();Console.ReadKey();} } 在上面的示例中我们定义了一个 Singleton 类并通过将构造函数私有化来防止外部直接实例化它。然后我们定义了一个静态字段 instance用来保存 Singleton 类的唯一实例。我们还定义了一个静态属性 Instance通过它来获取 Singleton 类的唯一实例。 在客户端代码中我们通过 Singleton.Instance 获取 Singleton 类的唯一实例并调用它的 DoSomething 方法。由于 Singleton 类只有一个实例因此多次调用 Singleton.Instance 得到的都是同一个实例。 观察者模式 观察者模式是一种行为型设计模式它定义了一种一对多的依赖关系使得多个观察者对象可以同时监听某个主题对象的状态变化。 以下是观察者模式的一个示例 public interface IObserver {void Update(string message); }public interface ISubject {void RegisterObserver(IObserver observer);void RemoveObserver(IObserver observer);void NotifyObservers(string message); }public class Subject : ISubject {private ListIObserver observers new ListIObserver();public void RegisterObserver(IObserver observer){observers.Add(observer);}public void RemoveObserver(IObserver observer){observers.Remove(observer);}public void NotifyObservers(string message){foreach (IObserver observer in observers){observer.Update(message);}} }public class Observer : IObserver {public void Update(string message){Console.WriteLine($Observer received message: {message});} }class Program {static void Main(string[] args){Subject subject new Subject();Observer observer1 new Observer();Observer observer2 new Observer();subject.RegisterObserver(observer1);subject.RegisterObserver(observer2);subject.NotifyObservers(Hello, observers!);subject.RemoveObserver(observer2);subject.NotifyObservers(Hello again, observers!);Console.ReadKey();} } 在上面的示例中我们定义了 IObserver 和 ISubject 接口分别表示观察者和主题对象。然后我们实现了 Subject 类它实现了 ISubject 接口并提供了注册观察者、移除观察者和通知观察者的方法。我们还实现了 Observer 类它实现了 IObserver 接口并在 Update 方法中打印出接收到的消息。 在客户端代码中我们创建了一个 Subject 对象和两个 Observer 对象并通过 RegisterObserver 方法将这两个观察者对象注册到 Subject 对象上。然后我们调用 NotifyObservers 方法将消息发送给所有注册的观察者对象。最后我们通过 RemoveObserver 方法移除了一个观察者对象并再次调用 NotifyObservers 方法发送消息给剩下的观察者对象。 策略模式 策略模式是一种行为型设计模式它定义了一系列算法将每个算法都封装起来并且使它们之间可以互换。 以下是策略模式的一个示例 public interface IStrategy {void Execute(); }public class StrategyA : IStrategy {public void Execute(){Console.WriteLine(Strategy A is executed.);} }public class StrategyB : IStrategy {public void Execute(){Console.WriteLine(Strategy B is executed.);} }public class Context {private IStrategy strategy;public Context(IStrategy strategy){this.strategy strategy;}public void SetStrategy(IStrategy strategy){this.strategy strategy;}public void ExecuteStrategy(){strategy.Execute();} }class Program {static void Main(string[] args){IStrategy strategyA new StrategyA();IStrategy strategyB new StrategyB();Context context new Context(strategyA);context.ExecuteStrategy();context.SetStrategy(strategyB);context.ExecuteStrategy();Console.ReadKey();} } 在上面的示例中我们定义了 IStrategy 接口表示一个算法的接口。然后我们实现了两个具体的策略类 StrategyA 和 StrategyB它们分别实现了 IStrategy 接口。最后我们定义了 Context 类它包含一个 IStrategy 类型的字段和一个 ExecuteStrategy 方法通过它来执行当前策略对象的算法。Context 类还提供了一个 SetStrategy 方法用于在运行时切换策略对象。 在客户端代码中我们创建了一个 Context 对象并将 StrategyA 对象作为它的构造参数。然后我们调用 ExecuteStrategy 方法执行 StrategyA 的算法。接着我们调用 SetStrategy 方法将策略对象切换为 StrategyB再次调用 ExecuteStrategy 方法执行 StrategyB 的算法。 以上是 C# 中几种常见的设计模式以及相应的示例代码。
http://www.w-s-a.com/news/559271/

相关文章:

  • 钢城网站建设安徽省住房和城乡建设厅网站
  • 协会网站建设方案大良营销网站建设好么
  • 网站引导页一般是什么格式网页设计师的应聘岗位
  • 构建网站空间网站开发与维护招聘
  • 网站建设的网页怎么做番禺网站开发哪家强
  • 网站开发是程序员吗百度网盘下载电脑版官方下载
  • 中国电力建设集团网站杭州网站运营
  • 大气网站模板下载效果好的网站建设公
  • 住房和城乡建设部网站打不开重庆市建设工程信息网官网30系统
  • 做美食软件视频网站大数据精准营销策略
  • 网站后台密码错误陕西大型网站建设
  • 网站建站中关键字搜索怎么弄wordpress 后台插件无法访问
  • 做减肥餐的网站网站优化注意事项
  • 做网站做推广有效果吗专门做淘宝优惠券的网站
  • 菜谱网站开发系统ps做网页效果图
  • 徐州品牌网站建设wordpress多重筛选页面
  • 网站改版提示无需改版个人怎么申请微信小程序
  • 电子商务网站建设的简要任务执行书可以注册免费网站
  • 公司网站设计需要什么豪爵铃木摩托车官网
  • 建收费网站合肥地区网站制作
  • 自己做头像网站小网站建设公司
  • 电子商务建设与网站规划wordpress linux安装
  • wordpress新手建站win8网站模版
  • 网站的简单布局孝感 商务 网站建设
  • 湖北手机版建站系统价格优化网站内容
  • 网站后台登录不显示验证码软文发布网站
  • 企业微网站建设方案收费的网站如何免费
  • 平昌县建设局网站中国500强企业有哪些
  • 网站开发制作的流程是什么网页打不开显示不安全怎么办
  • 网络网站开发设计安徽建设工程信息网怎么打不开了