- 博客(32)
- 收藏
- 关注
原创 jQuary编程
js类库: 对常用的方法和对象进行封装,方便我们使用.jQuery:案例1-弹出广告技术: 定时器 jQuery///////////////////////////jquery和html的整合 jquery是单独的js文件 通过script标签的src属性导入即可获取一个jquery对象 $("选择器") 或者 jQuery("选择器")dom对象和jquery对象之间的转换 dom对象==...
2018-06-04 11:19:21
260
原创 JavaScript单引号和双引号的区别
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script> //全局函数直接调用,不需要对象来调用 var s = "alert('1')";//aler
2018-05-30 18:02:23
3701
1
原创 单例模式必看
/* * 单例模式: * 饿汉式:类一加载就创建对象(太饿了,要直接给我) * 懒汉式:用的时候,才去创建对象(太懒了,等到饿到不行了才去要对象) * * 面试题:单例模式的思想是什么?请写一个代码体现。 * * 开发:饿汉式(是不会出问题的单例模式)(开发用饿汉式,详见RunTime类的源码就是饿汉式的单例模式) * 面试:懒汉式(可能会出问题的单例模式) * A:懒加...
2018-04-27 12:16:51
213
原创 面向对象思想设计原则
(1)单一职责原则:高内聚,低耦合。•也就是说,每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个。在设计模式中,所有的设计模式都遵循这一原则。(2)开闭原则:其核心思想是:一个对象对外扩展开放,对修改关闭。•其实开闭原则的意思就是:对类的改动是通过增加代码进行的,而不是修改现有代码。•也就是说软件开发人员一旦写出了可以运行的代码,就不应该去改动它,而是要保证它能一直运行...
2018-04-26 22:11:33
194
原创 匿名内部类在开发中的应用
/* 匿名对象在开发中的应用 打印结果: 好好学习,天天向上 ----- 好好学习,天天向上 */ interface Person{ public abstract void study(); } class PersonDemo{ //接口名作为形式参数 //其实这里需要的不是接口,而是该接口的实现类对象 public void method(Person p){ p....
2018-02-18 21:08:05
222
原创 抽象,接口
分析:从具体到抽象编程:从抽象到具体题目:教练和运动员案例乒乓球运动员和篮球运动员乒乓球教练和篮球教练为了出国交流,和乒乓球相关的人员都需要学习英语。请用所学知识,分析:这个案例中有哪些抽象类,哪些接口,哪些具体类。人:吃饭();//抽象方法 睡觉(){ }//具体方法//定义一个说英语的接口 interface SpeakEnglish{ //说英语 public abstra...
2018-02-17 18:09:34
252
原创 VC++多线程开发
在Windows操作系统中,每个进程可以同时执行多个线程,也就是说一个进程可以同时完成多个任务。为了同时执行多个线程,Windows采用了时间片的分配方式管理CPU,系统通过时间片调度轮流执行各个线程。对于像通信程序这样既耗费时间,有需要保持对用户输入响应的应用程序来说,应用多线程编程技术是较好地选择。 由于普通的类成员函数不能作为线程入口函数,所以实例定义一个静态类成员函数作为线程函数,为
2017-12-07 16:19:58
1604
原创 Windows事件与消息处理
Windows消息处理机制:Windows通过GetMessage()函数从消息队列中取得消息,然后由DispatchMessage()函数将消息派送到指定窗口,再由窗口函数WndProc()对消息处理。 当单击“耗时计算”按钮时,一个WM_COMMAND连同相关的参数被发送到WndProc()函数,进而判断该消息由“耗时计算”按钮触发,然后转入对应的消息响应函数进行计算。但在计算结束之前,Wn
2017-12-04 09:44:35
2590
原创 电商架构
1、电商技术 (1) 负载均衡:Nginx+keepalied (2) RPC远程调用:dubbo (3) 数据库集群:redis集群、MySQL集群、solr集群、zookeeper集群 (4)消息中间件ActiveMQ (5)分布式文件系统FastDFS
2017-11-24 09:44:44
384
原创 产品经理理解
1、职业发展通道: 产品专员-产品经理-产品总监-高级产品副总裁-首席产品官-首席执行官 2、具体工作 一个角色,产品的总负责人 产品调研与分析-产品需求与设计-项目管理-产品运营 例子:共享单车 调研? 1、市场需求?量? 80%有需求,500w人/次/天 2、调研用户? 确认用户的一些特征和习惯 分析? 竞品(同行)分析?优势?劣势?
2017-11-23 16:36:34
289
原创 系统架构
1、单一应用架构 1、模块之间耦合度太高,其中一个升级其他都得升级 2、开发困难,各个团队开发最后都要整合一起 3、系统的扩展性差 2、垂直应用架构 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆封成几个互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。 3、系统拆分 拆分理由: (1)应用间耦合度严重。系统内
2017-11-22 21:33:18
384
原创 装饰模式
装饰模式 装饰模式又叫包装模式,通过一种对客户端透明的方式来扩展对象功能,是继承关系的一种替代。 装饰模式就是把要附加的功能分别放在单独的类中,并让这个类包含它要装饰的对象,当需要执行时,客户端就可以有选择的、按顺序的使用装饰功能包装对象。 比如:给小人穿衣服。可以穿背心,裤衩,裤兜子等。如果使用继承,小人需要继承背心,继承裤衩,继承裤兜子,这样继承关系复杂,代码维护起来不方便。
2017-10-31 11:38:52
188
原创 观察者模式
观察者模式 随着信号灯的变化,汽车的行为也发生变化,一盏交通信号灯可以指挥多辆汽车。 观察者模式是用于建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,而其他对象将相应作出反应。在观察者模式中,发生改变的对象称为观察目标,而被通知的对象称为观察者,一个观察目标可以对应多个观察者。 如果5个英雄在打BOSS时,有一个英雄牺牲了,那么BOSS挂了之后
2017-10-31 10:59:07
251
原创 命令模式
命令模式 将一个请求封装为一个对象,从而让我们可用不同的请求对客户进行参数化;对请求排队而或者记录请求日志,以及支持可撤销的操作。命令模式是一种对象行为型模式,其别名为动作(Action)模式或事务(Transaction)模式。 命令模式可以将请求发送者和接收者完全解耦,发送者与接收者之间没有直接引用关系,发送请求的对象只需要知道如何发送请求,而不必知道如何完成请求。
2017-10-28 21:41:53
149
原创 策略模式
策略模式:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 未使用策略的写法: 使用策略的写法: #include using namespace std; //策略模式 //武器策略 class WeaponStrategy{ public: virtual void UseW
2017-10-28 21:14:45
190
原创 单例模式
1、单例模式 单例模式 是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望系统中某个类的对象只能存在一个,单例模式是最好的解决方案。 如操作系统的任务管理器,只需要一个即可,下次打开还是你上次打开的任务管理器。因此需要控制单例对象的个数。 实现单例步骤
2017-10-27 11:02:49
212
原创 抽象工厂模式
工厂方法模式通过引入工厂等级结构,解决了简单工厂模式中工厂类职责太重的问题,但由于工厂方法模式中的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,势必会增加系统的开销。此时,我们可以考虑将一些相关的产品组成一个“产品族”,由同一个工厂来同一生长,这就是我们本文将要学习的抽象工厂模式的基本思想。 。 1、当我们想添加一个新产品的时候,比如葡萄,虽然不同修改代码,但是我们需要添加
2017-10-27 09:58:23
188
原创 简单工厂模式和工厂方法模式适用场景
1、简单工厂模式: (1)工厂类负责创建的对象比较少,由于创建的对象较少,不会造成工厂方法中的业务逻辑太过复杂。 (2)客户端只知道传入工厂类的参数,对于如何创建对象并不关心。 2、工厂方法模式 (1)客户端不知道它所需要的对象的类。 (2)抽象工厂类通过其子类来指定创建哪个对象。
2017-10-27 09:53:16
3349
原创 工厂方法模式
工厂方法模式:从抽象工厂中派生出具体的工厂A,工厂B,分别负责类A和类B的创建。这样好处是符合开闭原则,再来一个class C,编写新功能函数即可。缺点是类越来越多,增加维护成本。 简单工厂模式+“开闭原则”=工厂方法模式 #include using namespace std; //工厂方法模式 //抽象水果类 class AbstractFruit
2017-10-27 09:20:20
167
原创 类图
也就是不写属性值或接口函数 一个类作为另一个类的形参,构成依赖关系 也就是一个类是另一个类的成员变量,即构成关联关系。 它们的生命周期不同,如计算机没了,但是CPU可以未其他计算机使用。 更强的组合关系:公司没了,那么部门也就随之消失了。
2017-10-26 11:49:28
381
原创 用例图
UML软件:网上可直接下载,名字叫做StarUML。 打开软件之后直接点击“空项目”,建立工程。 1、用例图(Use Case Diagram):也称为用户模型图,是从软件需求分析到最终实现的第一步,它是从客户的角度来描述系统的功能。 2、用例图包含3个基本组件: (1)参与者(Actor):与系统打交道的人或其他系统即使用该系统的人或事物。在UML中参与者用人形图标表示。 (2
2017-10-26 11:02:21
883
原创 UML统一建模语言
1、什么是建模? 任何事情都要先想清楚了再做,软件开发更是如此!软件开发过程不可能一上来就盲目写代码,写代码之前必须搞清楚下面一些问题: 要做什么? 做成什么样? 怎么去做? 2、建模的原则 (1)选择建立什么样的模型对如何发现和解决问题具有重要的影响; (2)每个模型有多种表达方式。使用者的身份和使用的原因是评判模型好坏的关键; (3)最好的模型总是能够切合实际。模
2017-10-25 22:39:01
295
原创 简单工厂模式
简单工厂模式中,用户想要A对象的话,只需要和工厂打交道,调用工厂接口CreateObject(),传入参数,让工厂知道应该创建什么类型对象,工厂帮你完成创建A对象的过程(new A ),这样做的优点是: 1、客户端和具体实现类解耦,让工厂去完成和具体类耦合; 2、对于某些对象创建过程比较复杂情况,我们不用考虑这些了;(例如A创建过程需要:读文件-解析文本-创建A对象-set属性值)。 但这样
2017-10-25 11:37:49
226
原创 依赖倒转原则
//银行工作人员 class BankWorker { public: void saveService() { cout } void payService() { cout } void tranferService() { cout } }; //中间层模块 void doSaveBussiness(BankWorker* worker) { work
2017-10-24 21:29:47
211
原创 合成复用原则
#include using namespace std; //合成复用原则:对于继承和组合,优先使用组合 //抽象车 class AbstractCar { public: virtual void run() = 0; }; //大众车 class DaZhong : public AbstractCar { public: virtual void
2017-10-24 17:07:11
248
原创 迪米特原则
#include #include #include using namespace std; //迪米特法则 又叫最少知识原则 //如一个人买房子看楼盘。他不需要和楼盘A,楼盘B,楼盘C打交道,只需要和一个中间层进行交互就好,这个中间层他知道哪个楼盘好,哪个楼盘差。 //这样操作可以降低用户和楼盘的耦合关系。 //抽象基类 class AbstractBuildi
2017-10-24 16:31:15
277
原创 开闭原则
#include using namespace std; //开闭原则 对扩展开放,对修改关闭。增加功能是通过增加代码来实现,而不是去修改源代码 //写一个抽象类 class AbstractCalculator { public: virtual int getResult() = 0; virtual void SetOperatorNum(int a,int b)
2017-10-24 15:35:21
230
原创 面向对象设计原则
1、单一职责原则(Single Responsibility Principle,SRP):类的职责单一,对外只提供一种功能,而引起类变化的原因只有一个。 2、开闭原则(Open-Closed Principle,OCP):类的改动是通过增加代码进行的,而不是修改源代码。 3、里氏代换原则(Liskov Substitution Priinciple,LSP):任何抽象类出现的地方都可以用其他
2017-10-24 10:42:44
178
原创 学习设计模式的目标
1、如何将代码分散在几个不同的类中? 2、为什么要有“接口”? 3、何为针对抽象编程? 4、何时不应该使用继承?//降低耦合性,提高内聚性 5、如果不修改源代码增加新功能? 6、更好地阅读和理解现有类库与其他系统中的源代码。
2017-10-24 10:10:48
365
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人