weikee94 / design-patterns

Design Patterns
0 stars 0 forks source link

Factory Pattern #2

Open weikee94 opened 11 months ago

weikee94 commented 11 months ago

工厂模式

Screenshot 2020-07-19 at 9 25 45 AM
class Product {
  constructor(name) {
    this.name = name;
  }
  init = () => {
    console.log("init");
  };
  fn1 = () => {
    console.log("this is fn1 function");
  };
}

class Creator {
  create = (name) => {
    return new Product(name);
  };
}

// test
let creator = new Creator();
let p = creator.create("p1");
p.init();
p.fn1();

这时候会问什么例子用这种模式呢?


var profile = React.createElement('div', null, 
        React.createElement('img', {src: 'avatar.png', className="profile"})
    )

class Vnode {
 // skip
}

React.createElement = function(tag, attrs, children) {
    return new Vnode(tag, attrs, children)
}
weikee94 commented 11 months ago
export const createBook = (title, author, isbn) => ({
  title,
  author,
  isbn,
});

export const book1 = createBook('Harry Potter', 'JK Rowling', 'AB123');

export const book2 = createBook(
  'The Great Gatsby',
  'F. Scott Fitzgerald',
  'CD456'
);

export const book3 = createBook('Moby-Dick', 'Herman Melville', 'EF789');

export const book4 = createBook('Harry Potter', 'JK Rowling', 'AB123');

export const book5 = createBook(
  'The Great Gatsby',
  'F. Scott Fitzgerald',
  'CD456'
);

stackblitz