设计模式之问题集锦(一)

设计模式的主要资料是《大话设计模式》。第一阶段先看看各种模式的基本概念。实现每一个模式下的样例。

然后在进行理解性的学习和掌握,灵活掌握各种模式的长处,知道某种模式适合那种状态。

如今,样例都已经基本实现了。尽管是跟着书上的样例敲的,可是还是遇到了不少问题。

问题一:接口问题

在敲第八章工厂方法模式的时候,遇到了下边的问题:

这个问题曾经也没有遇到过,不知道从何下手,认真比对代码后也没有找到错误。仅仅好请教别人,经过提示。原来自己在定义接口的时候直接写在了program.cs中,这样就总是报错;改动方法就是把以下这个接口又一次加入一个接口的控制窗体,这样就实现了。

namespace 第八章_工厂方法模式
{

        interface IFactory
        {
            LeiFeng CreateLeiFeng();
        }

}

想想这个错误,事实上还是对代码的编写过程不是非常了解,接口类最好给把它写在属于它的接口控制台位置,这样能够保持界面的美观。easy找出相关事项。

问题二:享元模式

看到这个提示信息,我就在代码中找到Hashtabel,一開始是觉得自己少写了Hashtable这部分的代码。可是样例中根本就没有这部分的内容;然后网上查找相关资料了解到,这个表示哈希表,说实话看到这个真是不太理解,详细想干嘛也不是非常清楚,只是看着这个的使用过程中,在命名空间的部分都有using System.Collections;这段代码。然后在自己所写的代码中加上这句后,问题就攻克了。

然后继续查找这个详细的原因:在.NET work中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/的键值对。

这才对它有所了解。又细致对比自己的代码,发现我一直看的是电子版的。这部分就没有使用那句代码,可是书上确实是提示我们加入的。所以今后一定要注意两者相结合着看。不能全然相信一个东西,百分之百正确的东西是不存在的。

问题三:解释器模式

能够说这部分是自己遇到问题最大的一次。调了好多遍,对了好多遍代码仍然无法执行。总是提示对象没有引用

这个真是让人捉急啊,后来仅仅好再次求助,捣鼓了老半天才找到问题之所在,还是曾经常常遇到的问题

图中所看到的的引號中必须加一个空格,否则就会提示上述错误。

然后又联想到在学生信息管理系统和机房收费系统中都遇到过同样的问题。看来不管那种语言,其有非常多地方都是共通的,都须要我们认真细致的编写和调试。

对于这部分的学习还须要继续努力,非常多地方自己还仅仅是停留在表面,须要继续深入的理解和研究。不管做过多少遍,问题总会有的,可是我们要有一颗不服输的心。相信不管遇到什么样的问题,一定能够解决的。

时间: 2024-12-25 02:59:41

设计模式之问题集锦(一)的相关文章

设计模式の面向对象

所谓的设计原则也好,设计模式也罢,无非是在面向对象的前提下产生的.而面向对象的前提是抽象,面向对象的三大特征是封装.继承.多态.为了从本质上理解设计模式,下面我们分析一下这些概念之间的关系.请看下图: 面向对象思想的前提是抽象,从现实世界中抽象出一些对象或者类的共性之后封装成类或者抽象类或者接口.这些类也罢接口也好是为了增加代码的复用性,既然是为了复用,当然需要子类来继承.在继承的过程中为了满足子类个性化的需求,于是多态就自然的出现了.为了更好地体现面向对象的思想我们有了一系列的设计原则,而设计

iOS 面试集锦

是第一篇: 1.Difference between shallow copy and deep copy??浅复制和深复制的区别??答案:浅层复制:只复制指向对象的指针,而不复制引用对象本身.?深层复制:复制引用对象本身.?意思就是说我有个A对象,复制一份后得到A_copy对象后,对于浅复制来说,A和A_copy指向的是同一个内存资源,复制的只不过是是一个指针,对象本身资源?还是只有一份,那如果我们对A_copy执行了修改操作,那么发现A引用的对象同样被修改,这其实违背了我们复制拷贝的一个思想

iOS面试集锦3

1.写一个NSString类的实现 + (id)initWithCString:(c*****t char *)nullTerminatedCString encoding:(NSStringEncoding)encoding; + (id) stringWithCString: (c*****t char*)nullTerminatedCString encoding: (NSStringEncoding)encoding { NSString  *obj; obj = [self alloc

【设计模式】GOF设计模式趣解(23种设计模式)

创建型模式                   1.FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了.麦当劳和肯德基就是生产鸡翅的Factory                   工厂模式:客户类和工厂类分开.消费者任何时候需要某种产品,只需向工厂请求即可.消费者无须修改就可以接纳新产品.缺点是当产品修改时,工厂类也要做相应的修改.如:如何创建及如何向客户端提供.      

整理:Android实用博文集锦

1.Android快速开发--使用ORMLite操作数据库:http://blog.csdn.net/smbroe/article/details/45787081 2.android开发步步为营之60:IntentService与Service的区别:http://blog.csdn.net/figo0423/article/details/45791737 3.Android开源项目--分类汇总:http://blog.csdn.net/xiangjai/article/details/23

公司内部传递的Java技术问答集锦

1 说出Servlet的生命周期,并说出Servlet和CGI的区别 Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法. 与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁

SpringMVC面试题集锦(精选)

以下来自网络收集,找不到原文出处.此次主要为了面试准备收集,希望对大家有所帮助~~~~ 1. 什么是Spring MVC ?简单介绍下你对springMVC的理解? Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合. 2. SpringMVC的流程? (1)用户发送请求至前端控制器Disp

Java设计模式——创建型模式之单例模式

一.概述 作为第一个出场的设计模式,有必要先介绍一下设计模式(引用自百度百科): 设计模式(Design Pattern)是一套被反复使用.多数人知晓的.经过分类的.代码设计经验的总结. 使用设计模式的目的:为了代码可重用性.让代码更容易被他人理解.保证代码可靠性. 设计模式使代码编写真正工程化:设计模式是软件工程的基石脉络,如同大厦的结构一样. 设计模式概念的介绍,参见:http://blog.jobbole.com/101076/ 其中涉及的设计原则的概念,参见随笔:http://www.c

10大APP界面框架设计模式详解

随着移动互联网的发展,移动app已经成为了每个互联网公司的标配了,那作为产品经理,我们如何设计出更加符合用户体验的app产品呢?今天和大家分享的就是10中最常见的app界面光甲设计模式,一起来看看吧. 1.标签导航 标签导航是十大界面框架设计里最常用的界面框架设计,也是被业界之内公认的一种普遍使用的页面框架设计.那么这种页面框架设计在作业方面对一个用户来说也是最常见的一种页面框架设计,比如说微博.微信.手机百度.支付宝.淘宝,这些我们所谓的超级APP都是运用的标签导航,无一例外.从这个角度也可以