E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
设计模式笔记
设计模式笔记
23——策略模式(strategy)
编写鸭子项目,具体要求如下:1)有各种鸭子(比如野鸭、北京鸭、水鸭等,鸭子有各种行为,比如叫、飞行等)2)显示鸭子的信息传统方案解:所有鸭子集成自Duck传统的方式实现的问题分析和解决方案1)其它鸭子,都继承了Duck类,所以fly让所有子类都会飞了,这是不正确的2)上面说的1的问题,其实是继承带来的问题:对类的局部改动,尤其超类的局部改动,会影响其他部分。会有溢出效应3)为了改进1问题,我们可以
苏云南雁
·
2020-06-25 01:29
设计模式
java
设计模式笔记
24——职责链模式(responsibilitychain)
学校OA系统的采购审批项目:需求是1)采购员采购教学器材2)如果金额小于等于5000,由教学主任审批(0<=x<=5000)3)如果金额小于等于10000,由院长审批(5000
苏云南雁
·
2020-06-25 01:29
设计模式
java
设计模式笔记
22——状态模式(state)
APP抽奖活动问题请编写程序完成APP抽奖活动具体要求如下:1)假如每参加一次这个活动要扣除用户50积分,中奖概率是10%2)奖品数量固定,抽完就不能抽奖3)活动有四个状态:可以抽奖、不能抽奖、发放奖品和奖品领完4)活动的四个状态转换关系图基本介绍1)状态模式(StatePattern):它主要用来解决对象在多种状态转换时,需要对外输出不同的行为的问题。状态和行为是一一对应的,状态之间可以相互转换
苏云南雁
·
2020-06-25 01:28
设计模式
java
李建忠讲23种
设计模式笔记
-上
前两天在B站看了李建忠老师讲23种设计模式的系列视频,收获颇丰。设计模式是前人的智慧和经验的总结,需要我们反复地学习、在实践中体会其蕴含的设计原则和设计思想。李老师按照封装变化将23种设计模式分成组件协作、单一职责、对象创建、对象性能、接口隔离、状态变化、数据结构、行为变化和领域问题九类,为我们理解设计模式提供了新角度。现将李老师的讲课内容整理出来,与大家分享~内容较长,分为上下两篇,本文是第一篇
0萌萌哒0
·
2020-06-24 14:03
设计模式
大话
设计模式笔记
(二)——商品促销 策略模式
第二章商品促销——策略模式需求:商品价格计算,并增加折扣条件工厂模式UML图在工厂模式中,调用端代码会通过折扣工厂类生成折扣对象,折扣对象调用折扣方法。这里关联了两个类,工厂类和抽象折扣类。策略模式UML图在策略模式中,会在策略环境类的构造器中完成折扣类的初始话,并在策略环境的实现方法调用折扣类的折扣算法。这样调用类只会关联策略环境类。简单工厂模式需要的是生成的对象,所以在客户端代码中会存在工厂类
逝兮诚
·
2020-06-24 09:28
设计模式
【
设计模式笔记
】(十二)- 迭代器模式
迭代器模式,行为设计模式之一。定义就是,提供一种方法顺序访问一个容器对象中的各个元素,而又不需要暴露该对象的内部数据存储的实现。迭代器模式源于对数据集合的访问,将遍历的方法封装到数据集合中,或者不提供遍历方法由用户自己遍历。以上两种方式都有弊端封装在数据集合中,那数据集合似乎多了些功能,数据集合不仅要维护自身数据元素,还要对外提供遍历的接口方法,遍历状态下还不能对同一个数据集合进行多个遍历操作不提
MrTrying
·
2020-06-23 21:56
设计模式笔记
7:单例模式(Singleton Pattern)
一、单例模式的内容单例模式确保一个类只有一个实例,并提供全局访问点。单例模式是一种对象创建型模式。单例模式又名单件模式或单态模式。二、单例模式特点某个类只能有一个实例。它必须自行创建这个实例。它必须自行向整个系统提供这个实例。三、单例模式结构图Singleton模式包含的角色只有一个,就是Singleton。Singleton拥有一个私有构造函数,确保用户无法通过new直接实例它。除此之外,该模式
iteye_6233
·
2020-06-23 19:47
设计模式笔记
21:中介者模式(Mediator Pattern)
一、中介者模式的内容中介者模式(MediatorPattern)定义:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者模式又称为调停者模式,它是一种对象行为型模式。在用户与用户直接聊天的设计方案中,用户对象之间存在很强的关联性,将导致系统出现如下问题:系统结构复杂:对象之间存在大量的相互关联和调用,若有一个对象发生
iteye_6233
·
2020-06-23 19:47
大话
设计模式笔记
——工厂模式(C++计算器实现)
调试bug:基类里面的函数必须要定义或者定义为纯虚函数,否则会报链接错误。工厂模式简单一点,就是调用一个函数,可以根据传入形参的不同可以生成不同的结果。工厂模式基于多态,子类重写父类的虚函数(这个虚函数是做具体工作的函数),工厂制造的对象都隐式转换成基类对象,调用被重写的虚函数执行操作。////main.cpp//Factory////CreatedbyBen_22on14-5-28.//Copy
Ben179261480
·
2020-06-23 12:30
设计模式
[
设计模式笔记
]三. 行为型模式--17. Interpreter模式(解释器模式)(一)
行为型模式--Interpreter(解释器)类行为型模式一.意图给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子.二.适用性如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子.这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题.当有一个语言需要解释执行,并且你可将该语言中的句子表示为一个抽象
小大小丑
·
2020-06-22 20:06
设计模式
设计模式笔记
设计模式笔记
--设计模式比较
一、创建类模式大PK创建类模式包括工厂方法模式、建造者模式、抽象工厂模式、单例模式和原型模式,它们都能够提供对象的创建和管理职责。其中的单例模式和原型模式非常容易理解,单例模式是要保持在内存中只有一个对象,原型模式是要求通过复制的方式产生一个新的对象,这两个不容易混淆。剩下的就是工厂方法模式、抽象工厂模式和建造者模式了,这三个之间有较多的相似性。1、工厂方法模式VS建造者模式工厂方法模式注重的是整
寒生1988
·
2020-06-22 18:02
Android之设计模式
设计模式笔记
——装饰
欢迎转载,共同进步。请注明出处:http://www.jianshu.com/u/e627f27f75b7简介在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。UML类图如下,图片来自puppet_master装饰模式装饰对象包含一个被装饰对象的引用,与被装饰对象有一样的接口,所以客户端可以以相同的方式和装饰对象交互。装饰对象在接
ShaDe_r
·
2020-06-22 08:42
设计模式笔记
工厂模式解释:(这种说法存在疑问:因为abs抽象类可以直接去掉,等到后面看spring源码的时候在说),快速创建同一个类的不同的实现的,并隐藏该类的创建过程,直接获取,随着类的越来越多,分类的越来越复杂,工厂开始专业化,因此出现了工厂的分类,因此出现了工厂的分类,抽象工厂模式abstractFactory{getA()getB()getC()}factoryextendsabstractFacto
毛荔枝
·
2020-05-27 23:08
设计模式
10、外观模式(
设计模式笔记
)
一、概述迪米特法则(最少知识原则):一个软件实体应尽可能少的与其他实体发生相互作用。外观模式核心:为子系统提供统一的入口。封装子系统的复杂性,便于客户端调用。二、案例这里我们以注册公司流程进行说明,先看当我们不使用外观模式时的做法:工商局.javapackagecn.itcast.day241.facade;publicinterface工商局{publicvoidcheckName();//核对
yjaal
·
2020-04-13 16:22
设计模式笔记
(八): 外观模式
要说清楚为什么要用外观模式,得先从一个例子入手。小明看电视小明每天晚上下班回到家中,总想看会儿电视,电视在客厅。所以他想看电视至少经历三个步骤:打开客厅的灯打开空调打开电视看完电视,离开客厅的时候需要以下步骤:关闭电视关闭空调关闭客厅的灯如下代码所示:publicclassLight{publicvoidon(){System.out.println("lighton");}publicvoido
yeonon
·
2020-04-12 17:20
18、模版方法模式(
设计模式笔记
)
一、场景客户到银行办理业务1、取号排队2、办理具体现金、转账、企业、个人、理财业务3、给银行工作人员评分二、介绍模版方法模式是编程中经常用到的模式。它定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现。这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特定步骤三、核心处理某个流程的代码已经都具备,但是其中某个节点的代码暂时不能确定。因此,我们采用工厂方法模式,将这个节点的代码实
yjaal
·
2020-04-12 11:53
设计模式笔记
(14)--模板方法模式
模板方法模式GOF对于模板方法模式的定义是:“定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。”TempleateMethod使得子类可以不改变的一个算法的结构即可重新定义该算法的某些特定步骤。上代码,以手机为例。packageTemplateMethod;publicabstractclassMobilePhone{protectedabstractStringUsers();public
球球球球笨
·
2020-04-10 08:52
【
设计模式笔记
】(二十)- 享元模式
简介享元模式,是对象池的一种实现,主要用于减少创建对象的数量,以减少内存占用和提高性能。定义:运用共享技术有效地支持大量细粒度的对象。意思就是采用对象共享的形式来实现大量对象的情况。有大量对象的情况,有可能导致内存溢出或者重复创建之前已经创建的相同对象。先举个简单的例子,android中的ViewHolder缓存view,为了优化性能存在一种写法,使用一个集合存储已经被实例化过的view,就不需要
MrTrying
·
2020-04-10 03:48
【
设计模式笔记
】(十)- 观察者模式
1.简述观察者模式是使用频率非常高的模式了,它定义了对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖他的对象都会收到通知,并自动刷新。很明显,说到这里首先就想到了Android中的ListView或者RecyclerView,当数据变化之后,再调用Adapter的notifyDataSetChanged()方法,列表的UI也就刷新了。其实就是使用了观察者模式。观察者模式.pngOb
MrTrying
·
2020-04-08 05:48
设计模式笔记
强势参考文章:http://blog.csdn.net/lovelion/article/details/175172131、策略模式环境类:环境类是使用算法的角色,它在解决某个问题(即实现某个方法)时可以采用多种策略。在环境类中维持一个对抽象策略类的引用实例,用于定义所采用的策略抽象策略类:它为所支持的算法声明了抽象方法,是所有策略类的父类,它可以是抽象类或具体类,也可以是接口。环境类通过抽象策
CaptainJno
·
2020-04-03 16:41
【
设计模式笔记
】(六)- 状态模式
1.简述状态模式属于行为模式,其定义就是:类的内部状态改变时,可以改变它的行为。可能描述的有点模糊,举个栗子(真就是举个栗子)Android系统在未root时,是无法卸载系统预装应用的;root成功,开启root权限之后,不仅可以卸载系统预装应用,还可以使用xposed,简直就是可以为所欲为啊!这就可以看出,Android系统在root的状态变更时,影响到了自身的某些行为,进而某些行为也相对应的发
MrTrying
·
2020-03-31 15:45
设计模式笔记
第三记——工厂模式
这次不做标题党了,而且也怕自己总结的有问题,所以希望大家看到问题可以及时指正吧,一步一步的写
设计模式笔记
好了,毕竟设计模式还是太多了。不是单独去学就能完全掌握的,具体还是在实践中体会。
AceCream佳
·
2020-03-31 13:11
11.DDD与微服务
设计模式笔记
---------------------------------------------------------------------------------单体架构到位服务软件生命周期与架构演化微服务立方体最好的架构是演化过来微服务拆分示例——典型电商系统的架构演化微服务横向扩展划分——共享核心功能模式微服务数据分区--------------------------------------
艾-小小雨
·
2020-03-29 00:00
设计模式笔记
(8)--适配器模式
适配器模式解决的问题是在不该写原有模块的基础上快速地使其适应新的项目GOF对适配器模式的定义是:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。下面直接上代码//客户期望的接口publicclassTarget}publicvoidRequest(){"客户发起了普通的基本请求";}}//需要被适配的类publicclassAdapt
球球球球笨
·
2020-03-28 22:43
[
设计模式笔记
] No.6 命令模式(Command)
封装“方法调用”,将“发出请求的对象”和“接收与执行这些请求的对象”分隔开来。命令模式将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。生活中的命令模式——餐厅点餐①你,也就是顾客,把订单交给女招待;②女招待拿了订单,放在订单柜台,然后喊了一声“订单来了”;③快餐厨师根据订单准备餐点。思考:对象和方法的调用关系①顾客知道他要的是什么,他创建一张订单
SEVEN_PIG
·
2020-03-27 19:27
[
设计模式笔记
] No.1 策略模式(Strategy)
策略模式——定义算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。算法族:一组行为,例如:下面案例中的鸭子的不同叫法,呱呱叫,吱吱叫等等,这些不同的叫法,就可看成是一组行为。案例引导需求(迭代一)开发一套模拟鸭子的游戏:SimUDuck。游戏中会出现各种鸭子,一边游泳戏水,一边呱呱叫。此系统使用了标准的OO设计,设计了鸭子超类,并让各种鸭子集成此超类。迭代二鸭子
SEVEN_PIG
·
2020-03-23 04:31
设计模式笔记
及Swift上的实现之二 『BUILDER(生成器)』
生成器和抽象工厂一样同属于创建型模式。介绍意图将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。适用性当创建复杂对象的算法应该独立于该对象的组成部分已经它们的装配方式时。当构造过程必须允许被构造的对象有不同的表示时。结构生成器结构.png参与者Builder为创建一个Product对象的各个部件指定抽象接口。ConcreteBuilder实现Builder的接口已构造和装配
sim_cai
·
2020-03-22 07:08
大话
设计模式笔记
1.简单工厂模式1.可维护:修改代码时只需要改需要改的那部分、可复用:有些代码可以在以后的编程中重复使用、可扩展:此时要加一些功能,很容易扩展、灵活性好:功能不同时调用不同类代替2.uml类图简单工厂模式3.uml类图画法及各符号含义2.策略模式1.uml类图策略模式2.策略模式与工厂模式的差别用途不一样工厂是创建型模式,它的作用就是创建对象;策略是行为型模式,它的作用是让一个对象在许多行为中选择
值得_e36c
·
2020-03-22 05:49
设计模式笔记
本文是《设计模式——可复用面对对象软件的基础》的笔记。面对对象设计的几个原则:1.针对接口编程,而不是针对实现编程2.优先使用对象组合,而不是类继承类继承是在编译时刻静态定义的,可以直接使用,但无法在运行时刻改变从父类继承的实现,并且父类的变化会引起子类的变化。所以类继承最好是只继承抽象类。对象组合是通过获得对其他对象的引用而在运行时刻动态定义的。并且,优先使用对象组合有助于保持每个类被封装,并被
Lension
·
2020-03-21 05:43
[
设计模式笔记
] 前言 为何要使用设计模式
有些人已经解决了你的问题,你将学到为何(以及如何)利用其他开发人员的经验与智慧。他们遭遇过相同的问题,也顺利地解决过这些问题。备注:该系列文章的知识的和用例,全部来自《HeadFirst设计模式》,感谢!《HeadFirst设计模式》百度云网盘学习设计模式的理由:①知道不足以让你设计出良好的OO系统。②良好的OO设计必须具备可复用、可扩充、可维护三个特性。③模式可以让我们建造出具有良好的OO设计质
SEVEN_PIG
·
2020-03-20 19:57
设计模式笔记
(2)--工厂方法模式
工厂方法模式简单工厂类简单工厂模式属于创建型模式,又称静态工厂方法(Staticfactorymethod)模式。其是由一个工厂对象决定创建出哪一种产品类的实例,可理解为不同工厂模式的一个特殊实现。publicclassBreadFactory{publicstaticBreadMakerMakeBread(intbreadType){BreadMakerbreadMaker=null;switc
球球球球笨
·
2020-03-20 14:59
[
设计模式笔记
] No.4 工厂模式(Factory)
前言:除了使用new操作符之外,还有更多制造对象的方法。你将会了解到实例化这个活动不应该总是公开地进行,也会认识到初始化经常造成“耦合”问题。当使用“new”时,的确是在实例化一个具体类,所以用的确实是实现,而不是接口。具体的类会导致代码更脆弱,更缺乏弹性。使用接口编程,让代码具有弹性,但是还是得要具体类的实例Duckduck=newMallardDuck();当有一群相关的具体类时,通常会写出这
SEVEN_PIG
·
2020-03-20 00:18
9、装饰模式(
设计模式笔记
)
一、职责动态的为一个对象增加新的功能装饰模式是一种用于代替继承的技术,无须通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。二、实现细节Component抽象构件角色:真实对象和装饰对象有相同的接口。这样客户端对象就能够以与真实对象相同的方式与装饰对象交互。ComcreteComponent具体构件角色(真实对象):io流中的FileInp
yjaal
·
2020-03-17 19:53
7、桥接模式(
设计模式笔记
)
一、概述使用场景商城系统中常见的商品分类,以电脑为类,如何良好的处理商品分类销售的问题?实例我们看如下的类层次结构Computer.javapackagecn.itcast.day238.bridge;//使用继承来表示关系//电脑接口publicinterfaceComputer{publicvoidsale();}//台式机类classDesktopimplementsComputer{pub
yjaal
·
2020-03-17 17:46
设计模式笔记
之七适配器模式
适配器模式,与我们传统认识里的ListView中使用的Adapter有些不一样,但思想是共通的,通过适配器连接两个毫无关联的类。适配器模式:从实现方式上分为两种,-类适配器-对象适配器这两种的区别在于实现方式上的不同,一种采用继承,一种采用组合的方式。另外从使用目的上来说,也可以分为两种,-特殊适配器-缺省适配器,这两种的区别在于使用目的上的不同,一种为了复用原有的代码并适配当前的接口,一种为了提
summer_lz
·
2020-03-15 04:39
发布python
设计模式笔记
连载
之前花了一些时间完整的挊了一下python的设计模式,主要还是基于"masteringpythondesignpattern"和github上的一些代码,加上自己对于设计模式的理解。后续还会继续修改,添加上一些自己阅读到的代码和设计模式参考文章:http://www.cnblogs.com/wuyuegb2312/archive/2013/04/09/3008320.htmlhttps://git
英武
·
2020-03-14 07:29
Head First
设计模式笔记
设计原则理解 1.找出应用中可能变化的地方,将它们独立出来。不要和那些不需要变化的部分混在一起; 2.针对接口编程,而不是针对实现编程; 针对"接口编程"的意思是“针对超类型编程”,针对接口编程关键在于多态。利用多态程序员可以针对超类型编程,编译器执行会根据实际情况执行到真正的行为,>而不会将超类型绑死,变得更加灵活。程序员可以不用关心超类型的实际类型,因为需求可能在不断变化。 这样设计,
远方有你,伴余生
·
2020-03-14 04:00
设计模式笔记
及Swift上的实现之四『PROTOTYPE(原型)』
意图用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。动机我们希望我们的框架类和应用类进行解藕,但又必须知道如何创建应用类的对象。(很抽象=。=)使用性当要实例化的类是在运行时刻指定是,例如,通过动态加载为了避免创建一个与产品类层次平行的工厂类层次当一个类的实例只能有几个不同状态组合中的一种。结构##参与者Prototype——声明一个克隆自身的接口。ConcretePrototyp
sim_cai
·
2020-03-13 10:41
设计模式笔记
之八模板模式
模mu版模式模板方法模式,一般是为了统一子类的算法实现步骤,所使用的一种手段或者说是方式。它在父类中定义一系列算法的步骤,而将具体的实现都推迟到子。最典型的形式就是一个接口,一个抽象父类,父类中会有一系列的抽象方法,而在子类中去一一实现这些方法。模板方法模式并不强制接口的实现类必须继承,所以不会对子类造成任何影响,而如果子类的实现可以配得上模板类的模板,那么就可以享受模板方法模式带来的。通常情况下
summer_lz
·
2020-03-10 08:15
14、中介者模式(
设计模式笔记
)
一、场景假如没有总经理。下面三个部门:财务部、市场部、研发部。财务部要发工资,让大家核对公司需要跟市场部和研发部都通气;市场部要接个新项目,需要研发部处理技术、需要财务部出资金。市场部跟各个部门打交道。虽然只有三个部门,但是关系非常乱。实际上,公司都有总经理。各个部门有什么事情都通报到总经理,这里,总经理再通知各个相关部门。这就像一个中介者模式。二、核心如果一个系统中对象之间的联系呈现为网状结构,
yjaal
·
2020-03-10 04:44
21、备忘录模式(
设计模式笔记
)
一、场景录入大批人员资料。正在录入当前资料时,发现上一个录错了,此时需要回复上一个资料,再进行修改word文档编辑时,忽然电脑死机了,再打开时,可以看到word提示你回复到以前的文档管理系统中,公文撤回功能。公文发送出去后,想车回来二、核心就是保存某个对象内部状态的拷贝,这样以后就可以将该对象回复到原先的状态三、结构源发器类Originatot备忘录类Memento负责人类CareTakerEmp
yjaal
·
2020-03-09 06:47
16、解释器模式和访问者模式(
设计模式笔记
)
这两种模式使用极少,了解即可。一、解释器模式(interpreter)1.1介绍用于描述如何构成一个简单的语言解释器,主要用于使用面向对象语言开发的编译器和解释器的设计。当我们需要开发一种新的语言时,可以考虑使用解释器模式尽量不要使用解释器模式,后期维护会有很大的麻烦。在项目中,可以使用Jruby、Groovy、hava的js的引擎来替代解释器的作用,弥补java语言的不足1.2开发中常见的场景E
yjaal
·
2020-03-08 20:48
【
设计模式笔记
】(十四)- 访问者模式
一、简述访问者模式是一种将数据操作和数据结构分离的设计模式,是23种设计模式中非常复杂的一种,而且使用频率并不高。定义:封装一些作用于某种数据结构中的各元素的操作(访问),可以在不改变这个数据的前提下定义作用于这些元素的新操作。顾名思义,某些不能改变的数据,对于不同的访问者有不同的访问(或者操作),为不同的访问者提供相对应的操作。例如:公司CEO就能看到公司所有的真实财报数据,而作为一个员工可能就
MrTrying
·
2020-03-06 00:09
[
设计模式笔记
] No.7 适配器模式(Adapter)和外观模式(Facade)
一、适配器模式有些时候,我们撸码时会碰到这样的问题,需要将一个接口转变成另外的接口,让不兼容的接口变成兼容。而且使用这个“不兼容接口”的客户,不必为了应对不同的接口而跟着修改。认识适配器模式:1、真是世界的适配器如果你需要在欧洲国家使用美国制造的笔记本电脑,你可能需要使用一个交流电的适配器。adapter_01.jpg适配器的作用:它位于美式插头和欧式插座的中间,它的工作是将欧式插座转变成美式插座
SEVEN_PIG
·
2020-03-05 10:16
设计模式笔记
(1)--6大设计原则
六大设计原则单一职责原则对于一个类,应该只有一个引起它变化的原因。需要足够简单的逻辑,才可以在代码级别上违反单一职责原则。需要类中的方法数目足够少,才可以在方法级别上违反单一职责原则。当一个类承担了过多的职责是,就等同于将这些职责都耦合在一起,一个职责的变化会削弱这个类完成其他职责的能力,当发生变化时,设计将会脆弱。优点:降低类的复杂度,一个类只负责一项职责,逻辑简单提高类的可读性提高系统的可维护
球球球球笨
·
2020-03-05 02:31
设计模式笔记
一六大原则
每日一文:是故圣人一守司其门户,审察其所先后,度权量能,校其伎巧短长。夫贤、不肖、智、愚、勇、怯,有差,乃可捭,乃可阖;乃可进,乃可退;乃可贱,乃可贵:无为以牧之。审定有无与其实虚,随其嗜欲以见其志意,微排其所言,而捭反之,以求其实,实得其指,阖而捭之,以求其利。或开而示之,或阖而闭之。开而示之者,同其情也;阖而闭之者,异其诚也。可与不可,明审其计谋,以原其同异。离合有守,先从其志。优点:代码的健
summer_lz
·
2020-03-04 01:27
11、享元模式(
设计模式笔记
)
一、场景内存属于稀缺资源,不要随便浪费。如果有很多个完全相同或相似的对象,我们可以通过享元模式,节省内存二、核心享元模式以共享的方式高效地支持大量细粒度对象的重用享元模式能做到共享的关键就是区分了内部状态和外部状态内部状态:可以共享,不会随环境变化而变化外部状态:不可以共享,会随环境变化而变化三、实例:围棋软件设计每个围棋棋子都是一个对象,有如下属性:颜色、形状、大小这三个属性是可以共享的,而位置
yjaal
·
2020-02-28 01:55
设计模式笔记
(一)--策略模式
最近在看设计模式的书籍,将看到的知识做一个笔记,方便记忆。这是第一篇。简介设计模式(Designpattern)代表了最佳的实践。设计模式是开发人员面临问题的解决方案。这些解决方案是众多开发人员经过相当长的一段时间试验和总结出来的。什么是策略设计模式策略模式(StrategyPattern):定义了算法簇,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。...好吧,太
Pan_大宝
·
2020-02-26 19:18
iOS
设计模式笔记
1.快速创建对象1.工厂方法2.抽象工厂3.生成器模式4.单例模式2.接口适配1.适配器iOS适配器设计模式2.桥接模式iOS桥接模式3.外观模式iOS设计模式-外观模式3.对象去耦1.中介者模式Mediator(中介者)模式在iOS开发当中的使用跳转不同的VC:路由方法不同的控制器相互跳转2.观察者模式4.抽象集合1.组合2.迭代器5.行为扩展1.访问者2.装饰iOS设计模式系列二:装饰者模式3
一直在路上66
·
2020-02-24 07:40
设计模式笔记
(七):创建型-原型模式
原型模式:(PrototypePattern)意图用原型实例来指定创建对象的种类,并且通过拷贝这些原型创建新的对象主要解决在运行期建立和删除原型何时使用1:当一个系统应该独立于它产品创建构成和表示的时候。2:当要实例化的类是在运行时刻指定的时候,例如动态装载3:为了避免创建一个与产品类层次平行的工厂类层次4:当一个类的实例智能有几个不同状态组合中的一种时候,建立相应数目的原型并克隆他们比每次用合适
jiuming
·
2020-02-23 10:44
上一页
2
3
4
5
6
7
8
9
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他