设计模式
文章平均质量分 92
须尽欢~~
阿里云开发者社区专家博主、技术博主、星级博主。
座右铭:Stay hungry. Stay foolish.
面包多平台作品网址:https://mbd.pub/o/author-amaWnG5pZA==/work
展开
-
设计模式——对象创建模式之工厂模式
通过“对象创建”模式绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定。它是接口抽象之后的第一步工作。典型模式PrototypeBuilder定义一个用于创建对象的接口,让子类决定实例化哪一个类。使得一个类的实例化延迟(目的:解耦,手段:虚函数)到子类。注:"解耦"是解new和后面具体的类的耦合。Factory Method 模式用于隔离类对象的使用者和具体类型之间的耦合关系。面对一个经常变化的具体类型,紧耦合关系(new)会导致软件的脆弱。原创 2023-05-13 23:02:04 · 440 阅读 · 0 评论 -
设计模式——单一职责模式之桥模式
在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任。典型模式DecoratorBridge将抽象部分业务功能)与实现部分平台实现)分离,使它们都可以独立地变化。Bridge 模式使用“对象间的组合关系解耦了抽象和实现之间固有的绑定关系,使得抽象和实现可以沿着各自的维度来变化。所谓抽象和实现沿着各自纬度的变化,即“子类化”它们。Bridge 模式有时候类似于多继承方案。原创 2023-05-12 20:37:50 · 832 阅读 · 0 评论 -
设计模式——单一职责模式之装饰模式
在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任。典型模式DecoratorBridge**动态(组合)**地给一个对象增加一些额外的职责。就增加功能而言,Decorator模式比生成子类(继承)更为灵活(消除重复代码 & 减少子类个数)。通过采用组合而非继承的手法Decorator 模式实现了在运行时动态扩展对象功能的能力,而且可以根据需要扩展多个功能。避免了使用继承带来的“灵活性差”和“多子类衍生问题”原创 2023-05-12 18:22:04 · 643 阅读 · 0 评论 -
设计模式——组件协作模式之观察者模式
现代软件专业分工之后的第一个结果是 “框架与应用程序的划分”,“组件协作” 模式通过晚期绑定,来实现框架与应用程序之间的松耦合,是二者之间协作时常用的模式。典型模式Strategy定义对象间的一种一对多(变化)的依赖关系,以便当一个对象(Subject)的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。使用面向对象的抽象Observer 模式使得我们可以独立地改变目标(被观察者)与观察者,从而使二者之间的依赖关系达致松耦合。目标(被观察者)发送通知时,无需指定观察者。原创 2023-04-26 12:43:50 · 466 阅读 · 0 评论 -
设计模式——组件协作模式之策略模式
现代软件专业分工之后的第一个结果是 “框架与应用程序的划分”,“组件协作” 模式通过晚期绑定,来实现框架与应用程序之间的松耦合,是二者之间协作时常用的模式。典型模式Strategy定义一系列算法,把它们一个个封装起来,并且使它们可互相替换(变化)。该模式使得算法可独立于使用它的客户程序稳定)而变化扩展,子类化Strategy 及其子类为组件提供了一系列可重用的算法,从而可以使得类型在运行时方便地根据需要在各个算法之间进行切换。Strategy 模式提供了用条件判断语句以外的另一种选择,原创 2023-04-24 16:54:01 · 365 阅读 · 0 评论 -
设计模式——组件协作模式之模板方法模式
现代软件专业分工之后的第一个结果是 “框架与应用程序的划分”,“组件协作” 模式通过晚期绑定,来实现框架与应用程序之间的松耦合,是二者之间协作时常用的模式。典型模式Strategy定义一个操作中的算法的骨架 (稳定),而将一些步骤延迟(变化)到子类中。Template Method 使得子类可以不改变(复用)一个算法的结构即可重定义(override 重写)该算法的某些特定步骤。原创 2023-04-23 22:53:13 · 456 阅读 · 0 评论 -
设计模式——设计模式简介、分类及面向对象设计原则
不希望学习设计模式的小伙伴最终掌握的是一堆的代码和技巧,其实那些不重要,重要的是建立了一套思维方式和模型。23 种设计模式中有些模式今天已经不流行了,有些模型已经被语言机制替代了,有些模式你可能常常会忘记,但这些都不重要,重要的是设计原则,因为有了这些设计原则,你有可能发明自己的模式,你也可以理解未来千千万万其他领域的模式。有很多朋友有一种错误观点就是把学习模式当做算法来学习,这是不对的,所有的设计模式都是依赖下面讲的面向对象设计原则推导出来的,如果它违背了设计原则,那么这个模式就是错误的。原创 2023-04-22 22:08:41 · 491 阅读 · 0 评论