“模”法无边-设计模式1

2024-05-05 05:38
文章标签 设计模式 无边

本文主要是介绍“模”法无边-设计模式1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  1. 忽然想起了王金博同学写的那篇博客《把那个人当作自己》,学习大话模式的时候,其实,作者已经将读者定位了,那就是小菜,所以把小菜当作自己,学习《大话模式》这本书,才会有更大的收获。但是我似乎高估了自己的能力,我远没有小菜那么高的学习能力和理解能力,只能对自己说一声,加油

 

  1. 大话模式已经学了一半,理解的尚浅,说说自己的理解,我觉的众多的模式,都是巧妙地运用继承,多态,封装也就是面向对象的三大特征的结果。

 

  1. 简单工厂模式
    1. 利用父类工厂指定创建的具体子类,由具体子类实例化成相对应的对象。然后调用的该对象的属性,方法。在这里子类继承父类,并且重写了父类的(虚函数或)虚方法,虽表面调用的是父类的方法,但实际上是由已实例化的具体对象的方法,也就是子类的方法,这里运用了多态。

 

  1. 策略模式
    1. ContextStrategy之间是聚合关系,Contexthas a StrategyConcreteStrategyA, ConcreteStrategyB, ConcreteStrategyC均是Strategy的子类。Context中的方法调用Strategy的方法,然后根据Strategy的具体实例化对象,对其子类的方法进行调用。这里运用了面向对象的继承,多态。

 

  1. 单一职责原则
    1. 再好不过的一个类有且只有一个引起它变化的因素(呵呵,这句话是我背过的)
    2. 再通俗一下,就是再好不过的一个类,有且只有一个功能。
    3. C#编程中有且仅有类组成,如果类做到了单一职责原则有助于类的复用,程序的维护。

 

  1. 开放-封闭原则
    1. 如果必须对类,进行修改,那么最好的修改方式是增加一些类
    1. 如果预测到必须(或者可能)要对类,进行修改,那么最好是将这些类进行进一步的抽象,得到抽象类,然后增加子类,或者修改子类已完成对它的修改。

 

  1. 依赖倒转原则
    1. 以我们日常用的暖水壶为例,有三部分构成,瓶胆,外壳,壶塞,其中任何一个坏了,我们都可以进行更换,将暖水壶比作程序1,瓶胆,外壳,壶塞比作三个类,这三个类可以随时被复用。
    2. 我们日常生活中用的水杯,如果杯身破了,那么杯盖也就不能用了。将水杯比作程序2,杯身,和杯盖比作两个类。两个类耦合度太高。
    3. 作为一个优秀的程序员,我们应该尽量做程序1这样的程序。

 

  1. 里氏代换原则
    1. 在一个继承体系中,多态的实现是父类通过具体实例化对象的不同使用子类的方法。
    1. 那么就应该满足子类和父类拥有完全相同的属性和方法。

 

  1. 装饰模式
    1. 先运行父类的方法,再运行子类的方法,已达到子类方法对父类方法的修饰。
    2. 通过多重继承实现利用base调用父类的方法,先实现子类的方法,再实现父类的方法。这里充分地应用了继承
    3. 通过SetComment使一个类成为另一个类的成员。
    4. 同名方法的套用。

 

  1. 代理模式
    1. 代理者和被代理者拥有相同的方法和属性
    1. 被代理者是代理者的一个成员
    1. 代理者调用被代理者的方法

 

  1. 工厂方法模式VS简单工厂
    1. 工厂方法模式
      1. MN次方类对应MN次方工厂
        1. 工厂的实例化
        1. 相应的工厂实例化相应的运算类
    1. 简单工厂
      1. MN次方类对应一个工厂
    1. 工厂方法模式消除了简单工厂的开放-封闭原则,保持了封装对象创建过程的优点。

 

 

  1. 945了,先发篇博客,之后继续总结,嘻嘻……

 

 

 

 

这篇关于“模”法无边-设计模式1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/960907

相关文章

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

设计模式之工厂模式(通俗易懂--代码辅助理解【Java版】)

文章目录 1、工厂模式概述1)特点:2)主要角色:3)工作流程:4)优点5)缺点6)适用场景 2、简单工厂模式(静态工厂模式)1) 在简单工厂模式中,有三个主要角色:2) 简单工厂模式的优点包括:3) 简单工厂模式也有一些限制和考虑因素:4) 简单工厂模式适用场景:5) 简单工厂UML类图:6) 代码示例: 3、工厂方法模式1) 在工厂方法模式中,有4个主要角色:2) 工厂方法模式的工作流程

C#设计模式(1)——单例模式(讲解非常清楚)

一、引言 最近在学设计模式的一些内容,主要的参考书籍是《Head First 设计模式》,同时在学习过程中也查看了很多博客园中关于设计模式的一些文章的,在这里记录下我的一些学习笔记,一是为了帮助我更深入地理解设计模式,二同时可以给一些初学设计模式的朋友一些参考。首先我介绍的是设计模式中比较简单的一个模式——单例模式(因为这里只牵涉到一个类) 二、单例模式的介绍 说到单例模式,大家第一

漫谈设计模式 [12]:模板方法模式

引导性开场 菜鸟:老大,我最近在做一个项目,遇到了点麻烦。我们有很多相似的操作流程,但每个流程的细节又有些不同。我写了很多重复的代码,感觉很乱。你有啥好办法吗? 老鸟:嗯,听起来你遇到了典型的代码复用和维护问题。你有没有听说过“模板方法模式”? 菜鸟:模板方法模式?没听过。这是什么? 老鸟:简单来说,模板方法模式让你在一个方法中定义一个算法的骨架,而将一些步骤的实现延迟到子类中。这样,你可

漫谈设计模式 [9]:外观模式

引导性开场 菜鸟:老鸟,我最近在做一个项目,感觉代码越来越复杂,我都快看不懂了。尤其是有好几个子系统,它们之间的调用关系让我头疼。 老鸟:复杂的代码确实让人头疼。你有没有考虑过使用设计模式来简化你的代码结构? 菜鸟:设计模式?我听说过一些,但不太了解。你觉得我应该用哪个模式呢? 老鸟:听起来你的问题可能适合用**外观模式(Facade Pattern)**来解决。我们可以一起探讨一下。

设计模式大全和详解,含Python代码例子

若有不理解,可以问一下这几个免费的AI网站 https://ai-to.cn/chathttp://m6z.cn/6arKdNhttp://m6z.cn/6b1quhhttp://m6z.cn/6wVAQGhttp://m6z.cn/63vlPw 下面是设计模式的简要介绍和 Python 代码示例,涵盖主要的创建型、结构型和行为型模式。 一、创建型模式 1. 单例模式 (Singleton

漫谈设计模式 [6]:适配器模式

引导性开场 菜鸟:老鸟,我最近在项目中遇到一个问题,我们的系统需要集成一个新的第三方库,但这个库的接口和我们现有的代码完全不兼容。我该怎么办? 老鸟:这是个常见的问题,很多开发者都会遇到这种情况。你有没有听说过适配器模式? 菜鸟:适配器模式?没有,能详细说说吗? 老鸟:当然可以!这就是我们今天要讨论的主题。适配器模式是一个设计模式,可以帮助我们解决你现在遇到的问题。 渐进式介绍概念 老

2 观察者模式(设计模式笔记)

2 观察者模式(别名:发布-订阅) 概念 定义对象间的一种一对多的依赖关系,当一个对象状态发生变化时,所以依赖于它的对象都得到通知并被自动更新。 模式的结构与使用 角色 主题(Subject)观察者(Observer)具体主题(ConcreteSubject)具体观察者(ConcreteObserver) 结构 Subject依赖于Observer最重要!!! package

1 单例模式(设计模式笔记)

1 单例模式 概述:使得一个类的对象成为系统中的唯一实例。 具体实现: 构造函数私有化 限制实例的个数 懒汉式(时间换空间) public class Singleton2 {public static Singleton2 singleton2;private Singleton2(){}public static Singleton2 getInstance() throws I

第三章 UML类图简介(设计模式笔记)

第三章 UML类图简介 3.1类 3.2接口 名字层必须有<> 3.3 泛化(继承)关系 箭头终点端指向父类(空心三角形) 3.4 关联(组合1)关系 B类是A类的成员变量 ,称A关联B。 箭头终点端指向B 3.5 依赖(组合2)关系 B类是A类的某个方法的参数 ,称A依赖B。 箭头终点端指向B(虚线) 3.6 实现关系 箭头终点端指向接口(虚线,空心