设计模式
java解释设计模式-更新中
九尾小妖狐灬
这个作者很懒,什么都没留下…
展开
-
设计模式-02抽象工厂设计模式
/** * 一个工厂模式的抽象层(接口) */public abstract class AbsFactory { @Nullable abstract Pizza createPizza(String orderType);}/** * 这是工厂子类 */public class BJFactory extends AbsFactory { @Override @Nullable Pizza createPizza(String orderType原创 2020-06-27 00:31:37 · 156 阅读 · 0 评论 -
设计模式-02工厂方法设计模式
场景: 用户需要下单美国披萨,中国披萨, 前一个简单工厂模式就不是能很好的满足现在的需求了。工厂方法模式: 定义一个创建对象的抽象方法,在子类决定需要实例化的类。工厂方法模式将对象的实例化推迟到子类中。Pizza顶级父类public abstract class Pizza { protected String name; /** * 准备原材料,不同的Pizza原材料不一样,设置成抽象方法,留给子类重写 */ public abstract void原创 2020-06-17 00:52:53 · 140 阅读 · 0 评论 -
设计模式-02简单工厂设计模式
先由简单工厂,引出一系列问题,从而优化。简单工厂模式属于创建型模式,是工厂模式的一种,简单工厂模式是由一个工厂对象决定创造出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式简单工厂模式: 定义了一个创建对象的类,由这个类来封装实例化对象的过程。/** * 所有披萨的顶级父类 */abstract class Pizza { protected String name; /** * 准备原材料,不同的Pizza原材料不一样,设置成抽象方法,留给子类重.原创 2020-06-17 00:14:53 · 136 阅读 · 0 评论 -
设计模式-01单例设计模式
01单例设计模式基本介绍所谓类的单例设计模式,就是采取一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。比如Hibernate中的SessionFactory,它充当的就是数据存储源的代理,并负责创建Session对象。SessionFactory并不是轻量级的,一般情况下,一个项目只需要一个SessionFactory就够,这时就需要单例设计模式。单例设计模式有8种写法饿汉式(静态常量)优点: 这种写法比较简单,就是原创 2020-06-11 00:36:40 · 140 阅读 · 0 评论 -
设计模式-七大原则-合成复用原则
合成复用原则基本介绍原则尽量使用合成/聚合的方式,而不是使用继承。问题举例public class Composite {}class A{ public void operation1(){ } public void operation2(){ }}/** * B 类想使用A类的方法, 最好不要用B类去继承A类,如果继承了会提高AB两个类的耦合性 */class B{ /** * 使用Set方法或者构造方法给B类的私有原创 2020-06-07 22:21:10 · 175 阅读 · 0 评论 -
设计模式-七大原则-迪米特法则
迪米特法则基本介绍一个对象应对其他对象保持最少的了解。类与类关系越密切,耦合度越大。迪米特法则又叫最少知道原则,即一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的不管多么复杂,都尽量将逻辑封装在类的内部。对外除了提供public方法,不对外泄露任何信息。迪米特法则还有个简单的定义: 只与直接的朋友通信。直接的朋友: 每个对象都会与其他对象有耦合关系,只要两个对象之间有耦合关系,我们就说这两个对象之间事是朋友关系。耦合的方式很多,依赖,关联,组合,聚合等。其中,我们称出现成员变量,方法参原创 2020-06-07 21:49:25 · 264 阅读 · 0 评论 -
设计模式-七大原则-开闭原则
开闭原则基本介绍开闭原则,是编程中最基础、最重要的设计原则。一个软件实体如类,模块和函数应对外扩展开放(对提供方),对修改关闭(对使用方)。用抽象构建框架,用实现扩展细节。当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。说白了就是增加了新功能,尽量保证以前的使用方代码不做更改问题代码示例public class Ocp { public static void main(String[] args) { GraphicEd原创 2020-06-03 00:32:33 · 217 阅读 · 0 评论 -
设计模式-七大原则-里氏替换原则
里氏替换原则基本介绍继承包含这样一层含义: 父类中凡是已经实现好的方法,实际上是在设定规范和契约,虽然它不强制要求所有的子类必须遵循这些契约,但是如果子类对这些已经实现的方法任意修改,就会对整个继承体系造成破坏。继承在给程序设计带来便利的同时,也带来了弊端。比如使用继承会给程序带来侵入性,程序的可移植性降低,增加对象间的耦合性,如果一个类被其他的类所继承,则但这个类需要修改的时候,必须考虑到所有子类,并且父类修改后,所有涉及到子类的功能都有可能出现故障。这个时候就需要引入里氏替换原则原创 2020-06-02 23:39:06 · 157 阅读 · 0 评论 -
设计模式-七大原则-依赖倒转原则
依赖倒转原则基本介绍高层模块不应该依赖底层模块,二者都应该依赖其抽象。抽象不应该依赖细节,细节应该依赖抽象。依赖倒转(倒置)的中心思想是面向接口编程。依赖倒转原则是基于这样的的设计理念: 相对于细节的多变性,抽像的东西要稳定得多。以抽象为基础搭建的架构比以细节为基础的架构要稳定得多。在java中,抽象指的是接口或者抽象类,细节就是具体的实现类使用接口或者抽象类的目的是制定好规范,而不涉及任何具体的操作,把展现细节的任务交给他们的实现类去完成问题代码示例public class De原创 2020-05-25 00:14:36 · 221 阅读 · 0 评论 -
设计模式-七大原则-接口隔离原则
接口隔离原则基本介绍客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上。接口Interface1中有5个方法,类A需要通过接口Interface1去掉用B类的第1,2,3个方法,类C需要通过接口Interface1去调用D类的第1,4,5个方法,这个时候B,D两个类必须重写完Interface1中的所有方法,这样会重写一些并没有使用的方法。按照隔离原则,Interface1应该拆分成几个更小的独立的接口,供A类和C类使用。错误的示范...原创 2020-05-24 02:46:12 · 183 阅读 · 0 评论 -
设计模式
设计模式使用设计模式可以提高程序的: 代码重用性,可读性,可扩展性,可靠性,使程序呈现高内聚,低耦合的特性设计模式常用的七大原则1. 单一职责原则2. 接口隔离原则3. 依赖倒转原则4. 里氏替换原则5. 开闭原则ocp6. 迪米特法则7. 合成复用法则...原创 2020-05-24 00:06:41 · 231 阅读 · 0 评论 -
设计模式-七大原则-单一职责原则
单一职责原则基本介绍对类来说,即一个类应该只负责一项职责。如A类负责两个不同的职责: 职务1,职务2。当职责1需求变更而改变A的代码时,可能造成职责2执行错误,所以需要将A的粒度分解为A1,A2。例如UserDao只负责对User的增删查改例如一个Dao又对User进行增删改查又对Order进行增删查改,这就违背了单一职责,此时可以拆分成UserDao和OrderDao违背单一职责的代码/** * 非单一职责 */public class SingleResponsibility1原创 2020-05-23 23:59:08 · 206 阅读 · 0 评论