我创建了一个下面的例子。这是否遵循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
大家都知道,AbstractFactory在不了解创建过程的情况下帮助创建对象。这将需要对抽象工厂创建者类进行重大更改。
我过去经常使用AbstractFactory,但经过我自己的修改,就像这样:将抽象工厂创建器类替换为空接口,该接口将由工厂类实现。这是有效的,但我想知道这是否打破了模式,或者这是模式上的一个糟糕的实践,或者它有任何缺点,将导致在未来的开发中相同的复杂性?
形状工厂:
public interface Shape {
void draw();
}
public class Circle implements Shape {
@Override
pub
这个简单的工厂是否违反了开放封闭原则?
每次需要创建新的具体产品时,SimpleProductFactory都需要进行更改,但它坚持单一责任原则,因为这是它将发生变化的唯一原因。它的唯一目的是使客户端不违反开放关闭原则,所以我认为它本身不可能违反,因为很明显,这段代码在某个地方是需要的。
我不想改变工厂,但是这个具体的例子是否违法。
产品
interface Product{
public int getPrice();
}
乳
class Milk implements Product{
public int getPrice(){ return 5; }
}
芯片
class Ch
我正在研究工厂的方法模式,并在一些地方的读者之后,我做了以下的实现。如果将来需要添加新类型的板,那么每次我必须更改BoardFactory类和枚举时?这是实现工厂方法的正确方法吗?
public interface Board { }
public class MotherBoard implements Board { }
public class VideoBoard implements Board { }
public class AudioBoard implements Board { }
public enum BoardType {
VIDEO,
AUD
我有一个项目涉及不同种类的产品网上商店。据我所知,如果您有多个类继承自一个基类,那么工厂设计模式是可行的。我只是很难决定将逻辑放在哪里,以便实际决定使用哪个工厂。 我已经为不同种类的产品创建了类和工厂类。 public class Product
{
public int ID { get; protected set; }
public string Name { get; set; }
public ProductType Type { get; private set; }
public Product(int id)
{
ID
我正在读一篇关于工厂方法模式的文章。
我可以理解何时有一个工厂类,即StoreFactory#getStore(),根据某个运行时或其他状态返回Store实现。
但是,从阅读(例如)来看,似乎有一种通用的模式,人们创建一个抽象的工厂类,其他工厂类扩展到这个抽象工厂类:
public abstract class AbstractFactory {
public abstract Store getStore(int store);
}
public class StoreFactoryA extends AbstractFactory {
public Store