摘要: 在现实生活中社会分工越来越细,越来越专业化。各种产品有专门的工厂生产,彻底告别了自给自足的小农经济时代,这大大缩短了产品的生产周期,提高了生产效率。同样,在软件开发中能否做到软件对象的生产和使用相分离呢?能否在满足“开闭原则”的前提下,客户随意增删或改变对软件相关对象的使用呢?这就是本节要讨论的问题 阅读全文
posted @ 2020-08-12 16:09 Mr陈二 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 在有些系统中,存在大量相同或相似对象的创建问题,如果用传统的构造函数来创建对象,会比较复杂且耗时耗资源,用原型模式生成对象就很高效,就像孙悟空拔下猴毛轻轻一吹就变出很多孙悟空一样简单。 原型模式的定义与特点 原型(Prototype)模式的定义如下:用一个已经创建的实例作为原型,通过复制该原型对象来 阅读全文
posted @ 2020-08-11 16:09 Mr陈二 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 在有些系统中,为了节省内存资源、保证数据内容的一致性,对某些类要求只能创建一个实例,这就是所谓的单例模式。 单例模式的定义与特点 单例(Singleton)模式的定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式。例如,Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务 阅读全文
posted @ 2020-08-11 15:20 Mr陈二 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 创建型模式的主要关注点是“怎么创建对象?”,它的主要特点是将对象的创建于使用分离,这样可以降低系统的耦合度,使用者不需要关注对象的创建细节,对象的创建由相关的工厂来完成。就像我们去商场购买商品时,不需要知道商品时怎么生产出来一样,因为他们由专门的厂商生产。 创建型模式分为以下几种: 1.单例(Sig 阅读全文
posted @ 2020-08-11 14:24 Mr陈二 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 一.开闭原则 含义:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块功能,使其满足新的需求。 作用:1.对软件测试的影响小,只需要对扩展的代码进行测试就可以。2可以提到代码的课复用性。3.可以提高软件的可维护性。 实现方法:可以通过“抽象约束、封装变化”来实现开闭原则 阅读全文
posted @ 2020-08-11 14:04 Mr陈二 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 软件设计模式使人们可以更加简洁方便地服用成功的设计和体系结构,它通常包含以下几个基本要素:模式名称、别名、动机、问题、解决方案、效果、结构、模式角色、合作关系、实现方法、适用性、已知应用、例程、模式扩展和相关模式等,其中最关键的元素包括以下4个主要部分。 1.模式名称 每一个模式都有自己的名字,通常 阅读全文
posted @ 2020-08-11 10:58 Mr陈二 阅读(497) 评论(0) 推荐(0) 编辑
摘要: 关于JVM,也许你听过这些术语:年轻代(新生代)、老年代、永久代、minor gc(young gc)、major gc、full gc 不要急,先上图,这是jvm 堆内存结构图 仔细的你发现了 图中有些分数8/10和1/10,这是默认配置下各个代内存分配比例。 举个栗子: 假如总heap max分 阅读全文
posted @ 2020-07-09 11:15 Mr陈二 阅读(2877) 评论(0) 推荐(0) 编辑
摘要: Java NIO中的DatagramChannel是一个能收发UDP包的通道。因为UDP是无连接的网络协议,所以不能像其它通道那样读取和写入。它发送和接收的是数据包。 打开 DatagramChannel 下面是 DatagramChannel 的打开方式: 1 DatagramChannel ch 阅读全文
posted @ 2020-07-03 17:20 Mr陈二 阅读(119) 评论(0) 推荐(0) 编辑
摘要: //客户但package com.example.demo.nio;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.Sel 阅读全文
posted @ 2020-07-03 17:17 Mr陈二 阅读(1053) 评论(0) 推荐(0) 编辑
摘要: Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的ServerSocket一样。ServerSocketChannel类在 java.nio.channels包中。 这里有个例子: 01 ServerSocketChannel s 阅读全文
posted @ 2020-07-03 17:14 Mr陈二 阅读(145) 评论(0) 推荐(0) 编辑