草庐IT

c# - 满足开放/封闭原则的工厂模式?

我有以下具体的Animal产品:Dog和Cat。我正在使用parameterizedFactorymethod创造所述产品。根据传递给Factory方法的AnimalInfo参数,将创建一个具体的产品。映射逻辑放在工厂方法中。这是我的代码:publicabstractclassAnimalInfo{publicabstractStringSound{get;}}publicclassDogInfo:AnimalInfo{publicoverridestringSound{get{return"Bark";}}}publicclassCatInfo:AnimalInfo{publicov

c# - 为什么我的 CaSTLe Windsor Controller 工厂的 GetControllerInstance() 被调用为空值?

我正在使用CaSTLeWindsor来管理Controller实例(除其他外)。我的Controller工厂看起来像这样:publicclassWindsorControllerFactory:DefaultControllerFactory{privateWindsorContainer_container;publicWindsorControllerFactory(){_container=newWindsorContainer(newXmlInterpreter());varcontrollerTypes=fromtinAssembly.GetExecutingAssembly

C#工厂模式和IoC的区别

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:DependencyInjectionvsFactoryPattern有人能解释一下(用简单的例子)工厂模式和控制反转模式之间的区别吗?最好使用.NET2.0

c# - switch 语句是否适用于工厂方法? C#

我想返回一个接口(interface),在switch语句中我想设置它。这是一个糟糕的设计吗?privateIResultEntityGetEntity(char?someType){IResultEntityentity=null;switch(someType){case'L'://lifeentity=newLifeEntity();break;case'P'://propertyentity=newPropertyEntity();break;case'D'://disabilityentity=newDisabilityEntity();break;case'C'://cre

c# - 服务定位器和工厂设计模式有什么区别?

我正在使用unity,我正在创建一个包装它的类,但我不知道如何调用它,服务定位器或工厂,都封装了对象的创建,所以......有什么区别? 最佳答案 工厂会根据请求为您创建对象。服务定位器返回可能已经存在的对象,即可能已经存在于某处的服务。想想名字的意思:工厂:是创建对象的地方。服务:可以作为服务为您做某事的东西。服务定位器:可以找到可以执行服务的东西。 关于c#-服务定位器和工厂设计模式有什么区别?,我们在StackOverflow上找到一个类似的问题: ht

c# - 工厂方法模式和抽象工厂模式如何选择

我知道以前有人问过类似的问题。在过去的几天里,我已经阅读了很多关于此的内容,我想我现在可以理解设计和代码流方面的差异。令我困扰的是,这两种模式似乎都可以解决同一组问题,而没有真正的理由选择一个或另一个。当我试图自己解决这个问题时,我尝试实现一个小例子(从我在“HeadFirst:Designpatterns”一书中找到的那个开始)。在这个例子中,我尝试两次解决同一个问题:一次只使用“工厂方法模式”,另一次使用“抽象工厂模式”。我会向您展示代码,然后我会提出一些意见和问题。通用接口(interface)和类publicinterfaceIDough{}publicinterfaceISa

c# - Autofac - 如何创建带参数的生成工厂

我正在尝试使用Autofac创建一个“生成的”工厂,它将根据枚举参数实时解析依赖关系。给定以下接口(interface)/类:publicdelegateIConnectionConnectionFactory(ConnectionTypeconnectionType);publicenumConnectionType{Telnet,Ssh}publicinterfaceIConnection{boolOpen();}publicclassSshConnection:ConnectionBase,IConnection{publicboolOpen(){returnfalse;}}pu

c# - 用 AutoFac 替换工厂

我习惯于创建我自己的工厂,如图所示(为了便于说明,这里进行了简化):publicclassElementFactory{publicIElementCreate(IHtmldom){switch(dom.ElementType){case"table":returnnewTableElement(dom);case"div":returnnewDivElement(dom);case"span":returnnewSpanElement(dom);}returnnewPassthroughElement(dom);}}我终于开始在我当前的项目中使用IoC容器(AutoFac),我想知道

javascript - AngularJs $scope 在对工厂发出 GET 请求后不更新

我一直在为一个实验项目尝试AngularJS,但我遇到了这个问题。在我的html中,我想显示一个项目列表Index.htmlSomelistItemdescription:{{item.description}}Itemname:{{item.name}}起初我使用一个简单的Controller来获取信息并更新View:controllers.js(原创)functiondatlist($scope,$http){$http({method:'GET',url:'http://localhost:61686/getdatlist?format=json',headers:{'Acces

javascript - 指令/工厂不在生产中工作

我有一个指令可以为用户打印出闪现消息。在我的本地主机上一切正常,但一旦我在Heroku上对其进行测试,就不会出现闪现消息。这是Controller。angular.module("alerts").controller("AlertsController",alertController)alertController.$inject=['Flash']functionalertController(Flash){varvm=this;vm.flash=Flash;}指令...angular.module("alerts").directive('flash',flash);flash