![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
Wzning0421
I'm always learning.
展开
-
设计模式之桥接模式
我们考虑这么一种问题:假设手机有多种分类:折叠式,翻盖式,滑盖式等等。每一种模式下面有多个手机品牌,他们都能实现打开手机等操作。也就是说功能划分如下图所示: 我们能看到每种手机下面有多个手机品牌,每个品牌都能实现自己的call操作。那么这么设计很直白,但是有一个问题:当手机的模式增加的时候,除了增加这一种样式,还要在这种样式下面增加各种手机品牌;当我们增加一个手机品牌,也要在每一种手机样式下面添加,这也就造成了类爆炸的问题。并且,当增加手机...原创 2020-05-23 17:27:00 · 199 阅读 · 0 评论 -
设计模式之适配器模式
适配器模式实际上是将某个类的结果转换成客户端期望的另一个类的接口表示,让原本因为接口不匹配的不能一起工作的两个类可以协同工作,就像适配器一样。适配器模式主要分三类:类适配器模式,对象适配器模式和接口适配器模式。对于用户的角度,看不到被适配者,也就是被适配的类是无感知的,从而实现了解耦。用户收到的反馈就是感觉只是和目标接口交互。1. 类适配器模式 比如说220V电压通过适配器转换成5V可以作为手机的输入。那么被适配者就是220V电源,适配者就是这个5V手机。 ...原创 2020-05-21 23:21:02 · 263 阅读 · 0 评论 -
设计模式之建造者模式
我们考虑这么一个问题:建房子。假设建房子有三个步骤:修地基,砌墙,砌屋顶。有很多种类的房子,但是建造的过程是相同的:那么假设想用一个传统方式进行建房子:首先定义一个commonHouse继承自基类AbstractHouse并且重写修房子的三种方法。然后有一个客户端去调用这个commonhouse的方法实现:package com.builder;public abstract class AbstractHouse { //打地基 public abstract void bu原创 2020-05-16 20:51:15 · 191 阅读 · 0 评论 -
设计模式之工厂模式
简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。创建对象的过程由工厂实现。假设我们有一个pizza类,对应两种pizza分别是CheesePizza和GreekPizza.他们都有四种方法:prepare,bake,cut和box.每种pizza对应的方法不同:package com.factory.simplefactory.pizzastore.pizza;import org.omg.Messaging.SYNC_WITH_TRANSPORT;public abstract原创 2020-05-15 22:48:15 · 147 阅读 · 2 评论 -
设计模式之原型模式
原型模式适用于大量创建比较复杂对象(包含各类基础类型和引用类型的类)的情况。我们知道在传统模式下,比如说一只羊,我们定义羊sheep的各类属性如下:package com.prototype;public class Sheep { private String name; private int age; private String color; public Sheep(String name, int age, String color){原创 2020-05-15 21:23:34 · 173 阅读 · 0 评论 -
设计模式之单例模式
单例模式就是采取一定方法保证整个的软件系统中,对于某个类只能存在一个对象实例,并且该类只能提供一个取得该对象实例的方法(静态方法)。单例模式主要有下面几种实现方式:1)饿汉式2)懒汉式(同步,双重检查,以及静态内部类)3)枚举1. 饿汉式(采用静态常量)package com.singleton.type1;public class singletonTest01 { public static void main(String[] args){ ...原创 2020-05-15 14:07:26 · 155 阅读 · 0 评论 -
设计模式七大原则
所谓设计模式,其实是总结出了一套能够通用的软件设计规范的参考。在编写软件过程中,如何提高代码的重用性,可读性,拓展性与可靠性,这都是设计模式需要解决的问题。设计模式包含了面向对象的精髓。设计模式的原则主要有七种:1)单一职责原则:对类来说,一个类只负责一项原则,如A负责两个不同职责:职责1和职责2,当职责1的需求改变而改变A的时候可能造成职责2错误,所以需要把类A分解成A1和A2.2)接口隔离原则:一个类对于另一个类的依赖应该建立在最小的接口上。 ...原创 2020-05-14 23:12:35 · 717 阅读 · 0 评论