写给自己看的设计模式
写给自己看的设计模式
森伯416
热爱技术的洁癖型码农一枚,喜欢分享所知所见
工作经历:华为、阿里、PDD
展开
-
写给自己看的设计模式之《观察者模式》
定义当对象之间存在一对多的关系时,被依赖的对象发生变化,需要通知到依赖它的所有对象。举个例子由于疫情的影响,各地的学校纷纷延迟了开学时间,延迟开学的消息由学校传达给老师和家长(不考虑由老师转发给家长的情况),具体的开学时间也是一样。这个例子中学校与老师和家长之间具有一对多的关系,学校的通知需要都通知到他们,结合观察者模式来code看看。首先定义被观察者:学校维护一个 Observer 的数组,老师和家长可以通过 registerObserver 方法注册;学校通过 publishNotice原创 2020-07-17 15:48:06 · 192 阅读 · 0 评论 -
写给自己看的设计模式之《策略模式》
定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换场景如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为一个系统需要动态地在几种算法中选择一种如果一个对象有很多的行为,如果不用恰当的模式,这些行为就只好使用多重的条件选择语句来实现优点算法可以自由切换避免使用多重条件判断。扩展性良好缺点...原创 2020-04-29 20:39:47 · 263 阅读 · 1 评论 -
写给自己看的设计模式之《模板方法模式》
概念参考:https://blog.csdn.net/carson_ho/article/details/54910518定义一个模板结构,基于继承关系将具体内容延迟到子类去实现场景子类中公共的行为应被提取并集中到公共父类中,并按需扩展特别的方法,避免代码重复优点提高代码复用性 子类通用的方法可以抽成基类方法提高了拓展性 子类可以根据自己的特点动态实现方法反向控制 通过父类...原创 2020-04-28 10:05:15 · 177 阅读 · 0 评论 -
写给自己看的设计模式之《外观模式》
概念参考:https://blog.csdn.net/carson_ho/article/details/54910625定义一个高层、统一的接口,通过这个接口实现外部对子系统多个接口的访问场景为一个复杂的子系统对外提供一个简单的接口提高子系统的独立性客户程序与多个子系统之间存在很大的依赖性,系统间解耦,挺高独立性和可移植性在层次化结构中,可以使用外观模式定义系统中每一层的入口...原创 2020-04-27 11:10:33 · 158 阅读 · 0 评论 -
写给自己看的设计模式之《适配器模式》
一. 介绍即定义一个包装类,用于包装不兼容的对象包装类 = adapter被包装类 = adaptee1.1 场景系统需要复用现有类,而该类的接口不符合系统的需求多个组件功能类似,但接口不统一且可能会经常切换1.2 优点更好的复用性系统需要使用现有的类,而此类的接口不符合系统的需要透明、简单客户端可以调用同一接口,因而对客户端来说是透明的更好的扩展性在实现适配器...转载 2020-04-24 10:41:55 · 174 阅读 · 0 评论 -
写给自己看的设计模式之《工厂模式》
1. 简单工厂模式又称为静态工厂方法(Static Factory Method)模式,它属于创建型模式,专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。场景工厂类负责创建的对象比较少,不会造成业务逻辑太复杂客户端只知道传入工厂类的参数,对如何创建类并不关心优点实现了对责任的分割,工厂类负责创建产品对象,客户端负责“消费”即可,且不需要记住产品类的类名...原创 2020-04-24 09:35:23 · 188 阅读 · 0 评论 -
写给自己看的设计模式之《设计原则》
设计原则转自:https://www.cnblogs.com/pony1223/p/7594803.html1. 单一职责定义一个类只负责一项职责优点降低类的复杂度,逻辑简单提高类的可读性,提高系统的可维护性降低变更风险,影响点较少2. 里氏替换原则定义任何基类出现的地方,子类一定可以出现。子类可以扩展父类的功能,但不能改变父类原有的功能继承的优点子类拥有...转载 2020-04-17 14:26:59 · 144 阅读 · 0 评论 -
写给自己看的设计模式之《单例模式》
单例模式单例模式实现方式很多:饿汉、懒汉、枚举、静态内部类等转自:https://www.jianshu.com/p/b8c578b07fbc为什么要用单例模式?场景 对于一些类(多为工具类)来说,整个系统中只需要一个实例就可以完成任务,比如:日志打印类、获取线程池类等优点系统只存在一个对象,可以节约系统资源,减少了频繁创建、销毁对象的开销,提高了系统性能。缺点如果实例...转载 2020-04-17 14:22:20 · 152 阅读 · 0 评论