#深入浅出设计模式

设计模式之禅之设计模式-原型模式

一:原型模式的定义       --->用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象       --->原型模式(PrototypePattern)...

Java-单例设计模式(懒汉与饿汉)

单例设计模式保证一个类在内存中只能有一个对象。思路:1)如果其他程序能够随意用new创建该类对象,那么就无法控制个数。因此,不让其他程序用new创建该类的对象。2)既然不让其他程序new该类对象,那么该类在自己内部就要创建一个对象,否则该类就永远无法创建对象了。3)该类将创建的对象对外(整个系统)提供,让其他程序获取并...

研磨设计模式

1.1 报价管理       向客户报价,对于销售部门的人来讲,这是一个非常重大、非常复杂的问题,对不同的客户要报不同的价格,比如:对普通客户或者是新客户报的是全价对老客户报的价格,根据客户年限,给予一定的折扣对大客户报的价格,根据大客户的...
代码星球 代码星球·2020-04-17

设计模式之代理模式

代理模式的基本介绍 代理模式:为一个对象提供一个替身,以控制这个对象的访问。即通过代理对象访问目标对象。这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即拓展目标对象。被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象代理模式有三种不同的形式:静态代理、动态代理(又叫jdk代理,...
代码星球 代码星球·2020-04-16

设计模式之享元模式

 基本介绍:1)享元模式:运用共享技术有效地支持大量细粒度的对象2)常用于系统底层开发,,解决系统性能问题。如数据库的连接池。3)能够解决重复对象在内存中的浪费问题。当系统中有大量的相似对象的时候,需要缓冲池。不需要总是创建新对象,可以从缓冲池里拿。可以降低系统内存,同时提高效率。4)享元模式的经典的应用场景...
代码星球 代码星球·2020-04-16

设计模式之外观模式

 外观模式介绍:外观模式(Facade),也叫"过程模式",外观模式为子系统中的一组接口提供一个一致的界面,此模式定了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式通过定义一个一致的接口,用以屏蔽内部子雄他那个的细节,使得调用端只需要跟这个接口发生调用,而不需关心这个子系统的内部细节。外观模式的原...
代码星球 代码星球·2020-04-16

设计模式之组合模式

组合模式的基本介绍:又叫部分整体模式。创建了对象组的树形结构,将对象组合成树形结构以表示"整体-部分"的层次关系。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。组合模式使得用户对单个对象和组合对象的访问具有一致性。即:组合能让客户以一致的方式处理个别对象以及组合对象。组合模式主要解决的问题:当我们要处理的对...
代码星球 代码星球·2020-04-16

设计模式之装饰者模式

 装饰者模式介绍:动态的将新功能附加到对象上。在对象的功能拓展方面,它比继承更有弹性,装饰者模式也体现了开闭原则(opc原则)。 装饰者模式类似于打包一个快递。主体(Component):陶瓷、衣服。包装(Decorator):报纸填充、塑料泡沫、纸板、木板。 这边的Component主体...
代码星球 代码星球·2020-04-16

设计模式之建造者模式

 背景:需要建造一个房子,建造的房子过程有打地基、砌墙、封顶。建造的类型有普通的房子、高楼。思路:需要有一个抽象类,里面有建造房子过程的三个方法,然后具体类继承这个抽象类。关系图如下:  代码实现如下:AbstractHouse.javapublicabstractclassAbstrac...
代码星球 代码星球·2020-04-16

设计模式之原型模式

 背景:如果有一只狗,Jim,现在需要创建5只,跟Jim一样的狗(属性一样的),按常规的做法如下: Dog:publicclassDog{privateStringname;privateintage;publicDog(Stringname,intage){this.name=name;this....
代码星球 代码星球·2020-04-16

设计模式分类

创建型模式,就是创建对象的模式,抽象了实例化的过程。它帮助一个系统独立于如何创建、组合和表示它的那些对象。关注的是对象的创建,创建型模式将创建对象的过程进行了抽象,也可以理解为将创建对象的过程进行了封装,作为客户程序仅仅需要去使用对象,而不再关系创建对象过程中的逻辑。社会化的分工越来越细,自然在软件设计方面也是如此,因...
代码星球 代码星球·2020-04-16

设计模式之迪米特法则

概念:  迪米特法则(最少知道原则)告诉我们,类应该只与直接的朋友(成员变量、方法参数、方法返回值)通信,陌生的类最好不要以局部变量的形式出现在类内部。 迪米特法则的目的是为了降低类之间的耦合,但是不是完全消除依赖。...

设计模式之里氏替换原则

 面向对象编程中存在的问题: 1)在子类层面上,因为子类可以对父类已经实现的方法进行任意的修改。可能对继承体系造成破坏。2)在父类层面上,如果父类修改了,所有涉及到子类的功能都有可能产生故障。 概念:  里氏替换原则并不是不让我们使用继承,所有引用基类的地方必须能透明地...

设计模式之依赖倒转原则

 基本概念: 抽象表示的是接口、抽象类。细节就是具体的实现类。接口或抽象类的价值在于指定规范。 一个反面例子:publicclassDependencyInversion{publicstaticvoidmain(String[]args){Peoplepeople=newPeople()...

设计模式之接口分离原则

 定义:   以上截图的uml图已添加注释,代码实现如下:publicclassSegregation{publicstaticvoidmain(String[]args){Aa=newA();Bb=newB();Cc=newC();Dd=newD();a.useInterfac...
首页上一页...3132333435...下一页尾页