设计模式
PETERMAOSX
哎呦,不错哦!
展开
-
自动浇花机中用到的监听者模式 (Python)
监听者模式又名观察者模式,就是观察与被观察的关系。比如在上课时看时间到没到下课时间,那么你就是观察者,时间就是被观察者。观察者模式是对象的行为模式,模型/视图模式。核心思想是在被观察者与观察者之间建立一种自动触发的关系在自动浇花机中,土壤湿度传感器就是被观察者,观察者就是水泵的开关。需要浇水的时候,水泵就打开。不需要浇水的时候,可以使用喷雾或者待机。from abc import ABCMeta , abstractmethodclass Obserable: #被观察者的基类原创 2020-12-24 16:29:55 · 408 阅读 · 1 评论 -
设计模式 -建造者模式
造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。主要有4个对象1 Builder (抽象建造者 => 工人模范)2 ConcreateBuilder (具体的建造者 => 招到的工人)3 Director (具体指挥者 => 监督的总管)4 Product (需要的产品)举个例子比如我要做牛肉汉...原创 2020-03-21 01:34:47 · 112 阅读 · 0 评论 -
设计模式-备忘录模式
备忘录模式备忘录模式简单来理解的话,其实就是我们在使用对象的时候,可能有时候会要声明一个临时变量来保存先状态的对象,当对象状态发生改变的时候,可以把原先保存在备忘录里面状态拿出来重新赋值给对象。一个Player对象,他的属性有血量值,魔法值,名字,位置这四个属性。当这个Player要去打Boss的时候,他要在Boss门口存一下档,存档这个事件就是调用了备忘录模式,将现在的状态保存一份。好了,...原创 2019-11-24 22:12:46 · 114 阅读 · 0 评论 -
设计模式-适配器模式
当你想使用一个已有的类,但是这个类的接口跟你的又不一样,不能直接拿来用,这个时候就需要适配器模式来帮忙了,其主要作用就是在旧的接口、新的接口之间完成适配。最简单的例子,就是当一个外国人和中国人交流的时候,如果双方都没有特别精通它国的语言的话,就需要一个翻译,这个翻译就是适配器。它即要懂中文,也要懂英语。package Demo1;public class AdapterDesignMod...原创 2019-11-23 17:48:34 · 133 阅读 · 0 评论 -
设计模式-状态模式
package Demo1;public class StateDesignModel { public static void main(String[] args) { Work work = new Work(); work.setHour(9); work.WriteProgram(); work.setHour(...原创 2019-11-22 14:34:06 · 109 阅读 · 0 评论 -
设计模式-建造者模式
构建起模式使用简单的对象并使用逐步方法构建复杂对象。这种类型的设计模式属于创建模式如果你需要将一个复杂对象的构建于它的表示分离,使得同样的构建过程可以创建不同的表示的意图,我们需要应用于一个设计模式,建造者模式,又叫生成器模式。建造者模式可以将一个产品的内部表象于产品的生成过程分割开来,从而可以是一个建造过程生成具有不同的内部表象的产品对象。如果我们用了建造者模式,那么用户就只需要指定需要建造的...原创 2019-11-18 21:47:33 · 157 阅读 · 0 评论 -
设计模式-外观模式
外观模式,也叫做门面模式为子系统中的一组接口提供一个一致的界面,次模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。简单的说,这个外观类就是一个管家类。将你需要重复做的工作它都打包好了。一个简单易于理解的例子管家(Facade)帮你买书和卖书class Book_Python: def Sell(self): print("卖Python书") ...原创 2019-11-17 18:04:09 · 70 阅读 · 0 评论 -
设计模式-模板方法模式
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可以重定义该算法的某些特定步骤。既然用上了继承,并且肯定这个继承有意义,就应该要成为子类的模板,所有重复的代码都应该上升到父类上去,而不是让每个子类都去重复。就有了模板方法,当我们要完成某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常要考虑用模板方法模式...原创 2019-11-16 15:10:18 · 68 阅读 · 0 评论 -
设计模式-原型模式(C#)
原型模式(Prototype),用原型模式实例指定创建对象得种类,并且通过拷贝这些原型创建新得对象。原型模式其实就是从一个对象再创建另一个可定制得对象,而且不需要知道任何创建的细节。使用原型模式避免了直接引用,因为直接引用过来的话,修改一些信息会影响到被引用的对象。如果使用了原型模式,直接Clone过来,再修改就不会影响到源对象需要 接上CloneAble接口并且实现这个方法,在C#里面...原创 2019-11-15 13:34:17 · 456 阅读 · 0 评论 -
设计模式-桥梁模式
桥梁模式,桥梁模式将定义与实现分离。简单说就是比如说我想要定义一个函数。但是我定义这个函数之前我想到了有桥梁模式这个东东。我就先将函数的定义写在一个接口里面。然后再做我要使用这个函数的类来实现这个接口。就行了。测试代码package com.designDemo;import java.awt.*;public class BridgeModel { public stat...原创 2019-11-12 17:21:52 · 99 阅读 · 0 评论 -
设计模式-建造者模式
我自己理解的建造者模式,也就是BuiderModel。这个设计模式的使用方法是通过接口先来构建基类,然后实例化对象继承基类。再创建一个单个的Buider和一个和单例模式差不多的整合Buider类举个简单的例子:大家去肯德基点餐的时候都会有套餐,而每个套餐里面都会有几个单品,比如夏威夷菠萝鸡腿堡套餐(包含可乐和汉堡还要薯条)在这里面,每一个单品都是Buider套餐就是整合Buider的类基类就...原创 2019-11-07 17:40:01 · 88 阅读 · 0 评论 -
C#设计模式-代理模式
我自己理解的代理模式就是在两个对象需要交流的时候,不要直接交流,而是建立一个中间人,也就是所谓的代理。通过代理来帮助两个对象交流。代理模式也就是为其他对象提供一种代理以控制对这个对象的访问。小demo : 阿猫爱上了阿花但是不敢明说就找了一个代理来帮忙using System;namespace std{ class main { static void ...原创 2019-10-29 22:53:39 · 148 阅读 · 0 评论 -
C#设计模式-装饰模式
装饰模式是为已有功能动态的添加更多功能的一种方式。装饰模式最大的好处就是有效的把类的核心职责和装饰功能区分开。一个穿衣服的装饰模式小demo//主要就是三个类 Person Finery Clothes//Person 是被装饰类//Finery是装饰类//其他的Clothes是模块,也就是装饰被装饰类的类using System;namespace std{ class...原创 2019-10-29 22:35:27 · 192 阅读 · 0 评论 -
C#设计模式-策略模式
当一个问题需要的算法比较多,并且需要可能需要在不同的时候使用不同的算法。这个问题就可以使用策略模式来解决。策略模式的主要内容就是将不同的算法都封装成不同的类,然后通过一个类似于工厂的类来调用。c#实现有一个算法策略完全抽象类 strage下面的三个算法都是override 这个strage里面的方法再通过一个content类来组装最后再客户端中调用(main)using System...原创 2019-10-19 20:47:42 · 96 阅读 · 0 评论 -
C#设计模式-简单工厂模式
以面向对象的分析设计编程思想,考虑通过封装,继承,多态把程序的耦合度降低,通过使用设计模式使得程序更加灵活,容易修改,并且易于复用。通过将功能都封装成一个类,然后建立一个工厂类就可以将所有的功能都通过这个工厂来生成所需要的产品。计算器例子-通过简单工厂模式1、所有的加减乘除的功能都有独立的类继承自运算2、通过工厂来将加减乘除的类功能实现3、客户端调用using System;nam...原创 2019-10-19 11:57:22 · 202 阅读 · 0 评论 -
简单网页设计的方法
1、先脑补一下自己想设计成什么样子2、脑补一下会具体使用到哪些需要的控件3、对控件进行样式的设置(color margin…)4、将内容填入html文件中,并且引用css文件尤其要注意控件的width and height 因为这些设置将会影响到网页的布局可以使用容器nav 或者 section 来解决测试cssbody{ background: #CCCCCC; m...原创 2019-10-16 17:59:08 · 454 阅读 · 0 评论 -
Java-设计模式(代理模式实现建房子)
代理模式为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。优点1、隐藏原始对象并控制对象的访问2、访问对象时提供其他的功能Subject:一个客户端可用的公开接口功能RealSubject:实现Subjectg接口的类,提供了接口方法的具体表现Proxy:实现Subject接口方法...原创 2019-09-04 15:19:30 · 281 阅读 · 0 评论 -
Java-设计模式(中介模式实现聊天室)
中介模式(Design pattern)定义了一个对象,该对象封装了一组对象的交互方式。对象之间的通信将封装在中介对象中。对象不再直接相互通信,而是通过中介进行通信。这减少了通信对象之间的依赖性,从而减少了耦合性。优点:1、避免一组交互对象之间的紧密耦合2、可以独立地改变一组对象之间的交互比如我们要实现一个聊天室的功能,聊天室就是中介,而聊天的人就是一个同事类,发送的每个消息都由聊天室转...原创 2019-09-04 00:21:53 · 902 阅读 · 0 评论 -
Java-设计模式(工厂模式)
工厂模式:工厂这个对象通常就是一个用来创建其他对象的对象。例如工厂通过使用一个人这个对象,如果我们需要一个男人,工厂就会帮我们创建一个男人;如果我们需要女人,就创建一个女人对象。工厂模式又分为:普通工厂模式多个工厂方法模式静态工厂方法模式1、普通工厂模式interface Animal{ public void eat(); public void sleep();...原创 2019-09-04 22:02:00 · 84 阅读 · 0 评论 -
Java-设计模式(抽象工厂模式)
抽象工厂提供了一种方式,可以将一组具有同一主题的单独工厂封装起来。如果比较抽象工厂和工厂模式,不难发现前者只是在工厂模式之上增加了一层抽象的概念。抽象工厂是一个父类工厂,可以创建其他工厂。简单的说就是"工厂的工厂"下面简单举一个例子举一个学习的例子,里面有书本,笔,教室其中教室是一个工厂//一本抽象书interface Book{ public String bookName(...原创 2019-09-05 21:43:41 · 97 阅读 · 0 评论 -
Java-设计模式(责任链模式)
责任链模式是一种由命令对象源和一系列处理对象组成的设计模式。每个处理对象都包含定义它可以处理的命令对象类型的逻辑;其余的传递给链中的下一个处理对象。还存在一种机制,用于将新处理对象添加到该链的末尾。责任链模式在结构上与装饰器模式几乎相同,不同之处在于对于装饰器,所有类都处理请求,而对于责任链,链中的一个类恰好处理请求。优点1、避免将请求的发送与其接受方耦合2、可以使用多个接收器处理请求h...原创 2019-09-04 20:29:23 · 124 阅读 · 0 评论