优雅的处理树状结构——组合模式总结

1、前言 本模式经 遍历“容器”的优雅方法——总结迭代器模式 引出,继续看最后的子菜单的案例 2、组合模式的概念 组合模式,也叫 Composite 模式……是构造型的设计模式之一。 组合模式允许对象组合成树形结构,来表现“整体/部分”的层次结构,使得客户端对单个对象和组合对象的使用具有一致性。 C ... »

遍历“容器”的优雅方法——总结迭代器模式

前言 本文主要是读书笔记的整理,自己总结的倒不多,做个记录 聚集(集合)的概念 如果能把多个普通类的对象聚在一起形成一个总体,这个总体就被称之为聚集(Aggregate),举例子: 1、在任何编程语言中:数组都是最基本的聚集,在Java中,数组也是其他的 JAVA 聚集对象的设计基础。 2、在Jav ... »

AOP 技术原理——代理模式全面总结

前言 非常重要的一个设计模式,也很常见,很多框架都有它的影子。定义就不多说了。两点: 1、为其它对象提供一个代理服务,间接控制对这个对象的访问,联想 Spring 事务机制,在合适的方法上加个 transaction 注解,就分分钟实现了事务。 2、除了1,代理对象还能充当中介的角色。 为什么要有代 ... »

面向对象的七大基本原则和实例详解

单一职责原则 定义:一个类只负责一个领域的相应职责。开闭原则 定义:软件实体应对扩展开放,而对修改关闭。里氏替换原则 定义:所有引用基类的对象能够透明的使用其子类的对象。依赖倒转原则 定义:抽象不应该依赖于细节,细节依赖于抽象。接口隔离原则 定义:使用多个专门的接口,而不是使用单一总接口。合成复用原 ... »

javaScript设计模式之----工厂模式

什么是工厂模式?我们通过一个例子了解一下: 比如我们想要弹出几个字符串 如果我们想要弹出a,b,c我们就需要调用不同的方法funA,funB,funC。但是如果我们想弹出的东西很多呢,每次调用都需要看是需要调用哪个方法,会不会很麻烦。所以我们可以再包一个方法来做处理,如下所示: 很显然,我们在调用的 ... »

发布订阅/回调模型的核心技术——观察者模式复习总结

前言 这是一个原理非常重要,写法很常见的一个模式,值得深入理解和总结一下 可以想 zookeeper 等,有时系统需要定时(可插拔)接收或者监听其他服务的动态,这类需求经常见到,那么观察者模式就是做这个的: 一个软件系统里面包含了各种对象,就像一片欣欣向荣的森林充满了各种生物一样。在一片森林中,各种 ... »

多线程场景设计利器:分离方法的调用和执行——命令模式总结

前言 个人感觉,该模式主要还是在多线程程序的设计中比较常用,尤其是一些异步任务执行的过程。但是本文还是打算先在单线程程序里总结它的用法,至于多线程环境中命令模式的用法,还是想在多线程的设计模式里重点总结。 实现思路 其实思路很简单,就是把方法的请求调用和具体执行过程分开,让客户端不知道该请求是如何、 ... »

对比总结三个工厂模式(简单工厂,工厂方法,抽象工厂)

前言 简单工厂模式,工厂方法模式,抽象工厂模式,这三个模式,当然还有单例模式,建造者模式等等,应该是日常工作中常用的,尤其是工厂模式,应该是最最常见的模式,对理解面向对象有重要的实际意义。 简单工厂模式 最简单,最直接,能满足大部分日常需求,不足是工厂类太简单——无法满足开闭原则,对多个产品的扩展不 ... »

Java反射+简单工厂模式总结

除了 new 之外的创建对象的方法 通过 new 创建对象,会使得程序面向实现编程,先举个例子,某个果园里现在有两种水果,一种是苹果,一种是香蕉,有客户想采摘园子里的水果,要求用get()方法表示即可 一般情况下,最直接的写法为: 如上代码,一堆的水果类,必须等到运行时才能知道实例化哪一个。一旦水果 ... »

最简单的设计模式——单例模式的演进和推荐写法(Java 版)

前言 如下是之前总结的 C++ 版的;软件开发常用设计模式—单例模式总结(c++版),对比发现 Java 实现的单例模式和 C++ 的在线程安全上还是有些区别的。 概念不多说,没意思,我自己总结就是: 有这样一个类,该类在生命周期内有且只能有一个实例,该类必须自己创建自己的这个唯一实例,该类必须给所 ... »

设计模式(一):简单工厂模式

描述 简单工厂模式,也就是说到底要实例化谁,将来会不会增加实例化的对象,比如计算算法的实现过程中,需要减加乘除得类,以后说不定还会增加开根运算等,所以应该考虑单独用一类来创造这个实力过程。 实现 为此我们就用简单工厂类实现加减乘除的算法计算。首先定义一个运算的接口。 定义好接口后,我们需要实现该接口 ... »

Java的慢和稳

对Java的了解还有待进一步提升,也没有做太多实践工作。只是把脑袋当成电脑,把Java放在里边不停地转,观察它的线路。得到的总体印象加上书本参考,认为Java的应用场景是慢和稳。 学编程语言总会接触到c和汇编。从发展来看,最初的语言是用来配合计算机,根据计算机的硬件执行步骤编程出01。为了把01稍简 ... »

Java面向对象之多态(来源于身边的案例)

这个案例网上是没有的,属于无忌独创,当时在帮孩子辅导作业,小学科学,里面有一点内容是关于人的牙齿,说牙齿分为:门齿、犬齿、臼齿,问闺女,为什么这么分呢?闺女说牙齿虽然都是用来咬食物,但是食物种类很多,咬碎需要的工具也不一样,门齿用来切割食物,如:苹果、梨;犬齿用来撕碎食物,如肉类;臼齿用来磨碎食物,... ... »

Python进阶:设计模式之迭代器模式

在软件开发领域中,人们经常会用到这一个概念——“设计模式”(design pattern),它是一种针对软件设计的共性问题而提出的解决方案。在一本圣经级的书籍《设计模式:可复用面向对象软件的基础》(1991年,Design Patterns - Elements of Reusable Object ... »

类似qq空间预览图片插件

首次接触面向对象编程,写了一个类似qq空间预览相册的图片小东西,没什么难点,代码有点low,见笑了,代码如下 只是用于记录学习,实用性可能不是太强 // m-list-content-item 需要触发的含有图片的盒子类名,只是用作触发,图片显示依然根绝实例化时传的数组为准 function sho ... »

谈谈面向对象的理解

一直以来对于面向对象的理解都仅仅是停留在字面的阶段:封装、继承和多态。 封装就是把对象包装成一个类, 继承就是有一个抽象出来的基类, 那么多态呢?对于多态的理解仅仅停留在override重写关键字上面,不知道什么时候使用。 直到前几天去参加一个面试,面试的大佬说:在面向对象的语言中,我们要弱化接口的 ... »

python面向对象学习(二)基本语法

[TOC] 上一篇简单的介绍了面向对象的基础概念,本节,一起来看一下, 中面向对象的相关语法。 1. dir内置函数 在 中 对象几乎是无所不在的 ,我们之前学习的 变量 、 数据 、 函数 都是对象 在 中可以使用以下两个方法验证: 在 标识符 / 数据 后输入一个 ,然后按下 键, 会提示该对象 ... »

封装继承多态

封装:把事物封装成类,私有化属性. 继承:共同的特性封装在父类,子类就有父类的属性 父类已经实现了的方法,子类也有需要前面+New 隐藏父类的方法,就不报错了,有这个语法,面试的时候问过,不推荐用. 父类; public void Test() 子类:public New void Test() 多 ... »

复习面向对象--创建对象

最近在看javascript高级程序设计这本书,看到了面向对象这一本部分,感觉很重要,所以再一次复习一遍,总结下知识,篇幅过多,分成了三部分,创建对象,原型和原型链,继承,最好可以连着看,不懂得再跳回去看。 面向对象 (Object-Oriented,OO)的语言有一个标志,那就是它们都有类的的概念 ... »