23种设计模式
本文最后更新于211 天前,其中的信息可能已经过时,如有错误请发送邮件到2289035571@QQ.COM

设计模式七大原则

  1. 单一职责原则 (Single Responsibility Principle)
  2. 开放-关闭原则 (Open-Closed Principle)
  3. 里氏替换原则 (Liskov Substitution Principle)
  4. 依赖倒转原则 (Dependence Inversion Principle)
  5. 接口隔离原则 (Interface Segregation Principle)
  6. 迪米特法则(Law Of Demeter)
  7. 组合/聚合复用原则 (Composite/Aggregate Reuse Principle)

单例模式

单例模式:保证进程中,类型只有一个实例

  • 构造函数私有化,防止他人实例化
  • 提供一个公开、静态的获取实例的方法
  • 返回共用一个静态字段

类前面加sealed 密封类 字段前面加Volatile

单例模式写法

懒汉式

  • 双IF语句判断加锁

private static SingletonPattern _singletonPattern = null; //创建静态变量
private static readonly object _lock = new object();  //创建锁对象

public static SingletonPattern getInstance()   //提供公开、静态的对外的方法
{
   if (_singletonPattern == null)
  {
       lock ( _lock )
      {
           if (_singletonPattern == null)
          {
               _singletonPattern = new SingletonPattern();
          }
      }
  }
   return _singletonPattern;
}

饿汉式

  • 静态构造函数:由CLR保证,在第一次使用这个类型之前,自动被调用且只调用一次

static SingletonPatternSecond()
{
   _singletonPatternSecond = new SingletonPatternSecond();
}

  • 静态字段:由CLR保证,在第一次使用这个类型之前,自动初始化并且只初始化一次

private static SingletonPatternSecond _singletonPatternSecond = new SingletonPatternSecond();

单例有什么用?用在哪个场景

同一个实例,不能解决多线程并发问题!会有线程冲突,覆盖数据

单例就是程序只需要这个对象实例化一次

实际应用场景:

  • 唯一序列号
  • 数据库连接池:数据库连接—非托管资源—申请/释放消耗性能。池化资源—内置10个连接—使用来拿,用完放回去避免重复申请和销毁—控制连接数量
  • 线程池
  • 流水号生成器
  • 配置文件读取
  • IOC容器实例

观察者模式

观察者模式写法

接口

抽取出一个IOberserver接口

对象继承于IOberserver接口,实现方法

将对象放入IOberserver集合中。将集合中的对象foreach调用

事件

发送者相当于主窗体,接受者相当于从窗体

觉得有帮助可以投喂下博主哦~感谢!
作者:Lincol
本文链接:https://www.lincol29.cn/23%e7%a7%8d%e8%ae%be%e8%ae%a1%e6%a8%a1%e5%bc%8f
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0协议转载请注明文章地址及作者哦~
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇