代码人生的小狗窝

一行行枯燥的代码,却描绘出人生的点点滴滴

推荐文章

悟空方式-java-普通工厂模式

    悟空模式-java-普通工厂模式【大圣看玩多时,问土地道:“此树有多少株数?”土地道:“有三千六百株。前面一千二百株,花微果小,三千年一熟,人吃了成仙了道,体健身轻。中间一千二百株,层花甘实,六千年一熟,人吃了霞举飞升,长生不老。后面一千二百株,紫纹缃核,九千年一熟,人吃了与天地齐寿,日月同庚。”大圣闻言,欢喜无任,当日查明了株树,点看了亭阁回府。自此后,三五日一次赏玩,也不交友,也不他游。】 在《西游记》第五回《乱蟠桃大圣偷丹 反天宫诸神捉怪》里有上面这一段关于蟠桃园里不同种类蟠桃树的描述,那么这里就用蟠桃园为例来描述一下普通工厂模式的运作方式: 蟠桃 package com.tirion.design.simple.factory; public interface FlatPeach { void printLevel(); void printCycleTi

    阅读全文>>

作者:coody分类:【_设计模式浏览(1349

2019-09-26

设计模式 一/23 单例模式

    设计模式 1/23 单例模式为什么将单例模式排名第一,很简单,面试的时候聊到设计模式,大概率就从单例模式开始入手,循循渐进。 当然,我们学习单例模式不是为了去应付面试,而是学好设计模式后,融汇贯通,应用于我们的设计,开发,项目中。 单例模式是最简单的设计模式之一 单例模式【Singleton Pattern】:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 两层含义:1,有且仅有一个实例      2,有一个访问他的全局访问点 我们来想象一个场景,放眼全球,所有的党派,都只有一个主席(这应该没有例外吧)这个案例,如果要拜访他,是不是需要一个全局的访问点。 对于一个类来说,我们怎样保证他仅有一个实例,初步想到的是不准外部实例化,因为如果可以外部实例化,我就可以实例化无数个。那不准外部实例化,就只能内部了,那就动手修改内部的构造方法。 (敲黑板,划重点) 所有类都有构造方法,不编码

    阅读全文>>

作者:coody分类:【_设计模式浏览(1086

2019-09-26

[js好手之路]设计模式系列课程-发布者,订阅者重构购物车

    [js高手之路]设计模式系列课程-发布者,订阅者重构购物车发布者订阅者模式,是一种很常见的模式,比如: 一、买卖房子 生活中的买房,卖房,中介就构成了一个发布订阅者模式,买房的人,一般需要的是房源,价格,使用面积等信息,他充当了订阅者的角色 中介拿到卖主的房源信息,根据手头上掌握的客户联系信息(买房的人的手机号),通知买房的人,他充当了发布者的角色 卖主想卖掉自己的房子,就需要告诉中介,把信息交给中介发布 二,网站订阅信息的用户 订阅者角色:需要订阅某类信息的网民,如某个网站的javascript类型文章 发布者角色:邮箱服务器,根据网站收集到的用户订阅邮箱,通知用户. 网站主想把信息告诉订阅者,需要把文章相关内容告诉邮箱服务器去发送 等等非常多的例子,不一一列举 本文用网站订阅的方式,推导发布者-订阅者框架,然后用发布者-订阅者框架来重构一个简单的购物车 1 var

    阅读全文>>

作者:coody分类:【_设计模式浏览(932

2019-09-27

悟空形式-java-原型模式

    悟空模式-java-原型模式【却说那妖精与大圣斗经半日,不分胜败。行者把棒丢起,叫一声“变!”就以一变十,以十变百,以百变千,半天里,好似蛇游蟒搅,乱打妖邪。妖邪慌了手脚,将身一闪,化道清风,即奔碧空之上逃走。行者念声咒语,将铁棒收做一根,纵祥光一直赶来。】 在西游记第九十五回【假合真形擒玉兔 真阴归正会灵元】中,孙行者“殴打”玉兔精的时候,将如意金箍棒从一根化作了千百根,打得玉兔精无从招架。 这千百根金箍棒的属性应该是一样的,如果孙悟空每次都要新建一个新的金箍棒对象,然后把原有的金箍棒的属性复制过去,如此重复千百次,未免太过麻烦,所以我们这里假设孙悟空使用了原型模式来创建多个相同属性的金箍棒实例。 在详细介绍原型模式之前,我们需要先了解一下java.lang.Object#clone()方法以及java.lang.Cloneable接口的功能及实现: java.lang.Cloneabl

    阅读全文>>

作者:coody分类:【_设计模式浏览(2104

2019-09-26

设计模式学习-容易工厂模式(python3)

    设计模式学习-简单工厂模式(python3)参考链接, 在Python3环境下,调试实现了《大话设计模式》中简单工厂模式,通过定义单独的工厂类,完成对具体的产品的实例化 具体实现见代码: 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # Date : 2017-10-15 21:46:28 4 # Author : John 5 # Version : V1.001 6 # Func : 7 8 9 class Operator(object): 10 """docstring for Operator""" 11 12 def __init__(self, NumberA=0, NumberB=0): 13 super(Operator, self).__in

    阅读全文>>

作者:coody分类:【_设计模式浏览(1160

2019-09-27

悟空方式-java-单例模式

    悟空模式-java-单例模式【那座山,正当顶上,有一块仙石。其石有三丈六尺五寸高,有二丈四尺围圆。三丈六尺五寸高,按周天三百六十五度;二丈四尺围圆,按政历二十四气。上有九窍八孔,按九宫八卦。四面更无树木遮阴,左右倒有芝兰相衬。盖自开辟以来,每受天真地秀,日精月华,感之既久,遂有灵通之意。内育仙胞,一日迸裂,产一石卵,似圆球样大。因见风,化作一个石猴,五官俱备,四肢皆全。便就学爬学走,拜了四方。目运两道金光,射冲斗府。】 上面这段文字,描述了悟空出生时的场景。孙悟空只有一个,任何程序要使用孙悟空这个对象,都只能使用同一个实例。 所以,单例模式非常好理解,单例模式确保一个类只有一个实例,且这个类自己创建自己的唯一实例并向整个系统提供这个实例,这个类叫做单例类。 其实,这个设计模式与抽象思维或者业务架构设计没有太多关系,更多要求的是对Java内存模型以及并发编程的理解,所以在介绍单例模式之前,需

    阅读全文>>

作者:coody分类:【_设计模式浏览(795

2019-09-26

再读设计模式7原则

    再读设计模式七原则GOF《设计模式》一书中提出了七条设计原则,七原则是一种理想状态的表达,但实际项目开发中可能会不得不打破这些原则的限制。 1. 单一职责原则(Single Responsibility Principle, SRP): There should never be more than one reason for a class to change. 言下之意做到类只承担单一职责(最细粒度)也就能尽可能地降低类变更的可能性,不同职责要分开单独定义。其实这一原则不仅仅适用于类,还适用于接口以及方法的设计; 2. 开闭原则(Open-Closed Principle, OCP): Softeware entities like classes,modules and functions should be open for extension but closed for mo

    阅读全文>>

作者:coody分类:【_设计模式浏览(1435

2019-09-26

触类旁通——最常用的面向对象设计原则“合成复用原则”

    融会贯通——最常用的面向对象设计原则“合成复用原则”复用一个类的时候,多使用对象的组合/聚合的关联关系,而不是继承。   之前提到的“依赖倒转原则”,是以里氏代换原则为基础的实现开闭原则目标的手段,这一条路线涉及到的是类的继承(包括单继承和接口实现),他们支撑了Java多态的特性。 但是今天要谈一谈Java另一个特性——封装。封装就是不要暴露过多的基类内部细节给子类,让高层的操作神秘起来,不让小兵知道。合成复用原则体现的就是封装的特性。 所以可以推论出,多使用对象的组合/聚合关系,而不是继承,从而实现不会暴露过多的基类操作细节给子类的目的。   那么组合和聚合是什么?他们和继承有什么区别?他们各自之间又有什么区别呢? 先说结论,相对于组合和聚合之间的区别,他们和继承之间的区别更大。 组合和聚合都是在一个对象(相当于子类)中把另一个类(相当于基类)的对象当做其成员对象,

    阅读全文>>

作者:coody分类:【_设计模式浏览(553

2019-09-28

php设计模式 工厂模式跟单例模式

    php设计模式 工厂模式和单例模式一.单例模式//让该类在外界无法造对象//让外界可以造一个对象,做一个静态方法返回对象//在类里面通过让静态变量控制返回对象只能是一个。 单例模式的要点有三个: 一是某个类只能有一个实例; 二是它必须自行创建这个实例; 三是它必须自行向整个系统提供这个实例。 为什么要使用PHP单例模式 1. php的应用主要在于数据库应用, 一个应用中会存在大量的数据库操作, 在使用面向对象的方式开发时, 如果使用单例模式, 则可以避免大量的new 操作消耗的资源,还可以减少数据库连接这样就不容易出现 too many connections情况。 2. 如果系统中需要有一个类来全局控制某些配置信息, 那么使用单例模式可以很方便的实现. 这个可以参看zend Framework的FrontController部分。 3. 在一次页面请求中, 便于进行调

    阅读全文>>

作者:coody分类:【_设计模式浏览(449

2019-09-26

Java设计模式篇(1)-不变模式

    Java设计模式篇(一)--不变模式 说设计模式,如果只是讲理论,估计很多人都会理解不透彻,今天我们结合JDK的源码设计,一块来说下设计模式中的不变模式.   1.什么是不变模式? 在并发程序中,为了保证临界区资源使用时不受其他线程干扰,使用锁控制可能是必不可少的,而同步锁控制会使系统的性能有所下降,为了尽可能提高并行程序的性能,我们可以使用一种不可改变的对象,依靠对象的不可变性,从而实现去锁操作,可以确保在多线程高并发情况下可以保持临界区资源的一致性,这就是不变模式. 说白了,不变模式,就是在对象创建完成后,不能再改变(我突然想起了小时候拉钩说的话),它的核心思想就是,一个对象一旦被创建,则它的内部状态就不允许再改变,基于这些特性,我们可以确定,不变模式对多线程是友好的,不需要进行同步锁控制.   2.不变模式的使用场景 根据不变模式的定义,我们可以大概猜出不变模式的应用场景:

    阅读全文>>

作者:coody分类:【_设计模式浏览(2178

2019-09-26

设计模式之小结篇

    设计模式之总结篇      十一宅了,也没学习看啥书,所有时间花在了围棋上,虽然很颓废,不过令人欣慰的是居然升了3级,现在是6k水平,之前晚上下的多,停在9k挺长时间的,居然在10.1突破了,这么看来我能升段的目标还是可能实现的,这么看自信还真是挺重要的,而我一直不算个自信的人,本来打算10.1假期完成这个设计模式总结的,但是懒癌爆发,就拖到今天啦。 设计模式的6大原则这也是个老生常谈的问题,我也不免俗1.单一职责原则       一个类只承担一个职责2.开放-封闭原则       对扩展开放,对修改关闭,即尽量以扩展的方式来维护系统3.里氏替换原则      表示我们可以在代码中使用任意子类来替代父类并且程序不受影响,这样可以保证我们使用“继承”并没

    阅读全文>>

作者:coody分类:【_设计模式浏览(1178

2019-09-26

众人都会设计模式:02-单例子模式-Singleton

    人人都会设计模式:02-单例子模式--Singleton 摘要: 人人都会设计模式系统宗旨是以简洁明了方式让你明白设计模式,本文介绍了单例设计模式,你真的全方位了解过单例模式吗?我们拭目以待单例模式大纲版权声明:本文为博主原创文章,未经博主允许不得转载公众号:TigerChainTigerChain欢迎关注教程简介1、阅读对象 本篇教程适合新手阅读,老手直接略过2、教程难度 初级,本人水平有限,文章内容难免会出现问题,如果有问题欢迎指出,谢谢3、Demo 地址 https://github.com/githubchen001/DesignPattern 请看 SingleTon 部分正文一、什么是单例模式1、 生活中的单例一个男人只能有一个媳妇「正常情况」,一个人只能有一张嘴,通常一个公司只有一个 CEO ,一个狼群中只有一个狼王等等2、程序中的单例一句话,就是保证一个类仅有一个实

    阅读全文>>

作者:coody分类:【_设计模式浏览(1553

2019-09-27

设计模式(十二)——模板方式(Template)

    设计模式(十二)——模板模式(Template) 定义一个操作中算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤。 通俗点的理解就是 :完成一件事情,有固定的数个步骤,但是每个步骤根据对象的不同,而实现细节不同;就可以在父类中定义一个完成该事情的总方法,按照完成事件需要的步骤去调用其每个步骤的实现方法。每个步骤的具体实现,由子类完成。   比如我们做菜可以分为三个步骤 (1)备料 (2)具体做菜 (3)盛菜端给客人享用,这三部就是算法的骨架 ;然而做不同菜需要的料,做的方法,以及如何盛装给客人享用都是不同的这个就是不同的实现细节。   下来我们就代码实现如下  a. 先来写一个抽象的做菜父类:   public abstract class DodishTemplate { /** * 具体的整个过

    阅读全文>>

作者:coody分类:【_设计模式浏览(879

2019-09-26
上一页 1/294页 下一页