我遇到这个问题,如果我包含某个标头,则无法编译。
标题的代码:
//#include "tinyxml2.h"
#pragma once
#include "Camera.h"
#include "Controller.h"
#include "Lights.h"
#include "Mesh.h"
namespace ActorFactory {
//using namespace tinyxml2;
template<class T>
Actor* createInstance() {
return new T;
}
typedef std::map<std::string, Actor*(*)()> class_map;
class_map test = {
{ "Camera", &createInstance<Camera> }
//{ "Mesh", &createInstance<Mesh> }
};
}
Run Code Online (Sandbox Code Playgroud)
来自 Visual Studio 的完整错误消息:
1>------ Build started: Project: ogl_inf251_ca2, Configuration: Debug Win32 ------
1> Main.cpp
1>d:\development\inf251\ogl_inf251_ca2\model_obj.h(26): warning C4005: '_CRT_SECURE_NO_WARNINGS' : macro redefinition
1> command-line arguments : see previous definition of '_CRT_SECURE_NO_WARNINGS'
1> Generating …Run Code Online (Sandbox Code Playgroud) 我想包含StateMachine使用StateMachineFactory. 但@EnableStateMachineFactory注释允许命名工厂。如何命名每个 Config (即扩展EnumStateMachineConfigurerAdapter)?
setMachineID否则,如果可能的话,提供一个如何在配置定义中使用该方法的示例将会很有用。
我如何添加一堆类ArrayList<MyBaseClass>,然后从中检索一个类(从中派生,但不是MyBaseClass从中),ArrayList并使用它来生成检索到的实际类的新对象(即不是MyBaseClass因为它是抽象的)
所有需要添加的类都派生自相同的抽象基类Class(MyBaseClass)
我真的想不出另一种方法来实现我想做的事情,所以希望这是可能的......?
我正在创建一个新的 angular 应用程序并使用工厂,但是当我收到一个错误时
错误:[$injector:undef] http://errors.angularjs.org/1.4.5/ $injector/undef?p0=Data at Error (native) at https://ajax.googleapis.com/ajax/libs/ angularjs/1.4.5/angular.min.js:6:416 在 Object.$get ( https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js:37:32 ) 在 Object.e [as invoke] ( https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js:39:96 ) 在https://ajax.googleapis.com /ajax/libs/angularjs/1.4.5/angular.min.js:40:410 在 d ( https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js:38 :308 ) 在 e ( https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js:39:64) 在 Object.g.instantiate ( https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js:39:213 ) 在 b.$get ( https://ajax. googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js:80:257 ) 在 s ( https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular-route .min.js:12:165 )
var app = angular.module('testapp', ['ngRoute']);
app.config(['$routeProvider',
功能($routeProvider){
$routeProvider.
当('/用户列表',{
title: '所有用户列表',
templateUrl: 'userlist.html',
控制器:'列表用户'
})
.when('/个人资料',{
title:'用户详情页面',
templateUrl:'profile.html',
控制器:'listuser'
})
。除此以外({
重定向到:'/用户列表'
});
}])
app.factory("数据", … 已经有很多关于此的主题,但是我不清楚为什么工厂模式比Singleton更好的实践。
一个例子
class MySingleton {
public static function numberByWhat( $number ) {
return $number + 100;
}
public static function someCharacters( $string ) {
return $string + 'abc';
}
}
class MyOtherSingleton {
public static function getImage( $url ) {
return '<img src="' . $url . MySingleton::numberByWhat( $50 ) . '">';
}
public static function getTextById( $id ) {
if( $id == 3 ) {
return 'this is my text' . MySingleton::someCharacters( 'Yeah' );
}
}
}
function run() { …Run Code Online (Sandbox Code Playgroud) 活动记录模式是一种访问数据库中数据的方法。数据库表或视图被包装到一个类中。因此,对象实例与表中的一行相关联。创建对象后,保存时将新行添加到表中。
MVC 是使用 MVC(模型视图控制器)设计构建 Web 应用程序的框架:模型代表应用程序核心(例如数据库记录列表)。视图显示数据(数据库记录)。
在工厂模式中,我们在不向客户端公开创建逻辑的情况下创建对象,并使用公共接口引用新创建的对象。
与 Active Record 相比,使用 MVC 有什么好处?
在我的网站中,我使用了 Active Record 和 Factory 模式的组合。对我来说,使用这些更简单、更快捷,因为我只需要编写一些函数。另外,我不需要视图、模型或其他东西。我的意思是在我看来,我越受规则约束,设计就越复杂。
但如果我说的是正确的,为什么有太多的框架使用 MVC ?