我创建了一个下面的例子。这是否遵循AbstractFactory设计模式?
ButtonType.java
public enum ButtonType {
WIN, LINUX, MAC
}
Button.java
public interface Button {
ButtonType getButtonType();
void actionListener();
}
LinuxButton.java
public class LinuxButton implements Button {
@Override
public ButtonType
我知道我可以编写这样的动态代理:
public class DecoratedFile implements java.lang.reflect.InvocationHandler {
private Object delegate;
public static Object newInstance(Object delegate) {
return java.lang.reflect.Proxy.newProxyInstance(
obj.getClass().getClassLoader(),
ob
我需要帮助设计模式识别。这是我的Java代码
public class A extend B {
public A (String arg1){
super(arg1);
}
public C newInstance(String arg2){
return new C(arg1, arg2);
}
}
有什么想法吗?是哪种模式?
UPD
public abstract class B {
protected final String arg;
public B(String arg) {
this.arg = arg;
我有一个简短的Java问题。哦,我对Java和stackoverflow都是新手,所以请多加考虑:)
让我试着更好地解释一下我的问题。所以我有两个遵循单例模式的类,比如A类和B类:
public class A
{
private static final A INSTANCE = new A()
public static A getInstance()
{
return A.INSTANCE;
}
}
public class B
{
private static final B INSTANCE = new B()
在一个项目中,这个月的风格似乎是使用switch语句和枚举来决定要创建哪些具体的类实例。
考虑到它们都实现了相同的接口,但在创建实例时需要不同的对象参数,是否有一种可以考虑用于对象创建的替代设计模式?
例如,当前代码是。
SomeInterface concreteInstance;
Switch() {
case A :
{
concreteInstance = new ConcreteAInstance(param1, param2);
}
case b :
{
concreteInstance = new ConcreteBInstance(pa
我正在学习马克·格兰德的"Patterns in Java“第一卷中的Java设计模式(特别是工厂方法)。我的观点是强调最接近的模式之间的差异。有很好的答案来阐明Factory方法和Abstract Factory之间的区别。 (Design Patterns: Factory vs Factory method vs Abstract Factory, What is the basic difference between the Factory and Abstract Factory Design Patterns?)。但我注意到,与我在“Java中的模式”中读到的解释相比,
头第一设计模式将简单工厂描述为
public class SimplePizzaFactory {
public Pizza createPizza(String type) {
Pizza pizza = null;
if (type.equals(“cheese”)) {
pizza = new CheesePizza();
} else if (type.equals(“pepperoni”)) {
pizza = new PepperoniPizza();
在这种情况下,我需要所有的子类实现父class...statically.的公共抽象方法但显然Java不允许抽象的静态方法..。
那么,Java中这种实现的替代设计是什么呢?下面是描述我所处情况的代码:
父类
public abstract class ParentFactory {
/**
* This is a factory class that provides static init method
**/
public abstract static void init();
}
儿童班
public class ChildFactory extend
我有一个接口:
public interface MyInterface{}
和两个实现:
public class Imp1 implements MyInterface {}
public class Imp2 implements MyInterface {}
我的程序是CLI。我希望有一些类,它将接受命令行args,解析它并创建正确实现的新实例:
public class MyFactory {
public MyInterface getMyInterface(CommandLineArgs args) {
....
}
}
这里有图案吗?我不确定抽象的
我正在尝试学习创造性的设计模式,我想我现在已经理解了Factory Method模式。但是在迁移到抽象工厂模式时,我找不到它的用处。我知道我错过了一些东西,但不知道在哪里。
在抽象工厂模式中,我们将有一个抽象工厂,而具体工厂将返回实例。假设我们正在处理汽车的创造。我们将有一个抽象工厂,比如
public interface CarFactory{
public Car getCar();
}
我们的混凝土工厂将会是这样的
public class AudiFactory{
public Car getCar(){
return new Audi();
}
Java noob这里,我有一个程序,我想迭代已经添加到另一个文件中的插件的数量,然后只要它是一个前缀和后缀计算器,我就想检查堆栈中的符号是否为'+‘,所以找到从Operator类扩展的add类,然后调用doAction(stack.pop(),stack.pop()),这是因为我想添加无限的方法来计算更多的符号,我试图使用反射,但我不知道如何在名称之间循环,让程序选择正确的方法
public class Operator {
public int doAction(int op1, int op2) {
return 0;
}
public
在用Java学习OOP概念和内部类时,我遇到了一个问题。
假设有一个类CarFactory,它有返回Car的buildCar()方法。这个工厂构建了几个实现Models的Car。
因此,我创建了一个Car接口,Models实现了Car。
如何返回作为接口的Car?
我知道我可以实例化实现Car的Model,但是我想要创建一个通用方法,返回实现Car的任何Model。
CarFactory.java
public class CarFactory {
Car buildCar() {
return new Car(); // ??? I cannot do this
}
}
我尝试用java实现一个工厂模式,但是我有一些问题。
我有一个类AbstractAction,它是MapMoveAction,CutAction等子类的抽象类。
和类ActionFactory,它是创建具体类实例的工厂,操作工厂类包含一个静态方法createAction,该方法以字符串作为参数来标识要创建的concrect类。
但我的问题是,每一个节拍类在需要构造时都采用不同的参数:
public class ActionFactory {
public AbstractAction createAction(String uniqueName) {
// TOD
我想编写一个像spring的bean实例化方法一样的方法。
context.getBean("beanobjectname", Type);
我有多个接口,将由开发人员实现,开发人员将类名放在一个属性文件中,在其中我将以字符串的形式读取类名,就像在bean.xml中一样。我想编写一个泛型方法来实例化实现这些接口的类的对象,只需以字符串的形式传递类名,以及传递接口类型的类型。请帮帮忙。
编辑1
期望方法的内容如下所示。但这显示了编译错误。
public <T> T getObject(String className, Class<T> type) t
当我的应用程序启动时,它需要根据登录的用户获取正确的DAL类的实例(目前有4个)。某些用户正在从某些数据库中拉取数据。
如果我只是返回DAL类的正确静态实例,而不是实例化这些DAL类的实例,那么它仍然被认为是“工厂”模式吗?我不需要不断地创建这些对象,因为所有用户都可以共享它们。
Psuedocode:
public class RepositoryFactory
{
public static IRepository repoA = new FranksLumberRepo();
public static IRepository repoB = new LowesHardw
我想知道是否有某种设计模式使我的代码更加具体。
我想工厂方法模式可以帮助我,但不确定。
在代码下面,形状创建方法需要其他创建方法来创建子元素(例如:挤压->循环->顶点)。在形状创建方法中,程序员应该自定义已创建的子元素,以阐明该方法将生成什么形状。下面只是我的情况,不一定要深入我的处境。任何人都可以帮助我,任何建议都会很高兴的。
谢谢。
下面是我用C#编写的suedo代码流。遗憾的是缺乏细节,但更好的理解更快。
public class SomethingClass
{
//Some codes...
//create Circle
我正在读一篇关于工厂方法模式的文章。
我可以理解何时有一个工厂类,即StoreFactory#getStore(),根据某个运行时或其他状态返回Store实现。
但是,从阅读(例如)来看,似乎有一种通用的模式,人们创建一个抽象的工厂类,其他工厂类扩展到这个抽象工厂类:
public abstract class AbstractFactory {
public abstract Store getStore(int store);
}
public class StoreFactoryA extends AbstractFactory {
public Store
我正在学习工厂模式,并实现了这个抽象工厂的简单示例。在编写这个小示例时,我跟踪了一下这视频。这个例子有什么反模式或错误吗?
我做了两种不同的比萨饼
public interface IPizza
{
public string Name { get; set; }
}
public class NewYorkPizza : IPizza
{
public string Name { get; set; } = "NewYork Pizza";
}
public class ItalianPizza : IPizza
{
public string N