设计模式
要淡定_少年
这个作者很懒,什么都没留下…
展开
-
利用迭代器,适配器模式实现统一数据访问接口。
package com.iterator;public interface Iter { int next(); boolean hasNext();}package com.iterator;public class ArrayIter implements Iter { private int[] array; private int index; pu原创 2015-06-01 11:28:00 · 507 阅读 · 0 评论 -
面向对象就是面向生活,而模式就是解决生活中特定问题的最佳实践。
1,模式源于生活而又服务于生活。2,面向对象编程就是面向生活编程,所以生活中的问题都有一个对应的面向对象结构。3,为什么面向对象能解决大规模的软件设计?因为面向对象是生活中问题的一一映射。生活中出现的问题均可一一映射成对象结构。原创 2015-06-16 10:46:17 · 510 阅读 · 0 评论 -
基于c++的单列模式实现。
/**DownloadManager.h*/#ifndef DOWNLOADMANAGER_H#define DOWNLOADMANAGER_H#include #include #include #include #include using namespace std;class DownloadManager{private:sta原创 2014-03-22 18:21:45 · 749 阅读 · 0 评论 -
基于c++的包装者模式初探。
#ifndef INPUTSTREAM_H#define INPUTSTREAM_Hclass Inputstream{public:virtual void read()=0;virtual ~Inputstream(){}};#endif#ifndef FILE_INPUTSTREAM_H#define FILE_IN原创 2014-03-26 16:51:50 · 629 阅读 · 0 评论 -
实用软件开发流程
1,取得需求。2,从需求归纳出用例列表或功能列表。3,采用用例驱动或功能驱动进行代码片段实现(可包含类图的设计)。用例驱动:指让一个使用流程通过(往往包含多个功能)。功能驱动:指让一个独立的具体功能通过。4,tdd测试让每一个用例或功能通过。5,采用设计原则和模式增加系统的灵活性。6,集成测试。7,发布。原创 2015-06-25 15:44:57 · 446 阅读 · 0 评论 -
基于c++的策略模式初探。
#ifndef ABSACCOUNT_H#define ABSACCOUNT_Hclass AbsAccount {public: virtual double getTotalPrice(double unitPrice,int counts)=0; virtual ~AbsAccount(){ }//need define when decla原创 2014-03-22 22:59:17 · 740 阅读 · 0 评论 -
基于c++的抽象工厂模式实现初探。
/* * AbsPerson.h * * Created on: Mar 22, 2014 * Author: lch */#ifndef ABSPERSON_H_#define ABSPERSON_H_class AbsPerson {public:virtual void eat()=0;virtual ~AbsPerson(){原创 2014-03-23 13:21:53 · 607 阅读 · 0 评论 -
基于c++的builder模式初探。
builder模式:核心是同样的建造过程可以得到不同的外在表象。#ifndef IBUILDER_H#define IBUILDER_Hclass IBuilder{protected:virtual void buildHead()=0;virtual void buildBody()=0;virtual void buildFoot()=0;原创 2014-03-26 13:35:22 · 698 阅读 · 0 评论 -
利用装饰者模式通过层层封装以达到动态增强类的功能。
提示:它优于继承在编译时静态绑定的行为。代码待续。。。原创 2015-06-12 14:32:42 · 599 阅读 · 0 评论 -
利用观察者模式实现data和ui的独立演化
待续。。原创 2015-06-11 13:57:43 · 462 阅读 · 0 评论 -
策略模式实现可拓展可插拔的功能。
package com.main;public interface Calculator { int calculate(int input);}package com.main;public class C1 implements Calculator{ @Override public int calculate(int input) { // TODO Auto原创 2015-06-01 11:00:27 · 1467 阅读 · 0 评论 -
使用桥接模式让两个抽象层级能够独立的演化。
1,A是一个抽象类,它HAS-A抽象类B.A有不同的实现类,B也有不同的实现类。见下面简画的图:使用桥接模式可以让A和B这两个抽象层级独立的变化和扩展而不会相互影响。在客户端调用时采用下面的形式比较灵活,并且功能可插拔:void main(..){B b1=new Bimpl1();B b2=new Bimpl2();//A a=new Aimpl1();a原创 2015-06-26 11:18:34 · 446 阅读 · 0 评论 -
敏捷核心思想、设计模式与过度设计
这儿只谈敏捷开发的核心思想,而不谈其他表现形式比如结对编程,测试驱动等。本文不是谈设计模式,而是谈何时该用设计模式。敏捷开发的核心思想是:只对当前已经发生过>=2次的同类需求变更,去应用抽象,封装,或设计模式来调整当前架构,以使之能够灵活适应下次同类需求变更(即下次的同类变更我们能以最少的成本和时间去完成)。 实例一:商场优惠方式。 这个场景很多人在读设计模式时都见过,原创 2016-10-29 10:42:05 · 1223 阅读 · 0 评论